2012-05-07 50 views
8

我用argparse獲得來自用戶的文件:如何在Python中獲取argparse文件的目錄?

import argparse, os 
parser = argparse.ArgumentParser() 
parser.add_argument('file', type=file) 
args = parser.parse_args() 

然後我想知道這個文件是目錄,是這樣的:

print(os.path.abspath(os.path.dirname(args.inputfile))) 

但當然,作爲args.inputfilefile對象,這不起作用。怎麼做?

+0

您可以簡單地將參數作爲字符串獲取,然後再打開它。 –

+0

@DavidRobinson是的,這是簡單的方法,但我想確保沒有什麼比較聰明的做法,因爲'argparse'提供了有用的'type = file'。 –

+1

我同意,值得一問。 –

回答

12

您可以從.name屬性獲取文件的名稱,然後將其傳遞給os.path.abspath。例如:

args = parser.parse_args() 
path = os.path.abspath(args.file.name) 
+0

不錯,很容易,謝謝! –

相關問題