9
使用argparse.add_argument
方法的type
參數,您可以要求一個參數是一個可讀的文件:如何獲得文件名以argparse同時指定類型的文件類型=(...)這說法
parser.add_argument('--sqlite-file', type=argparse.FileType('r'))
由於指定此類型的好處,argparse檢查是否可以讀取文件,如果不是,則顯示錯誤給用戶。
有沒有辦法獲得傳入的文件名而不是io.TextIOWrapper
或io.BufferedReader
的實例?
由於文件名出現在解析器的字符串表示中('sqlite_file': <_io.TextIOWrapper name='data/export.sqlite' ...
或'sqlite_file': <_io.BufferedReader name='data/export.sqlite' ...>
),應該可以。
怎麼辦?
http://bugs.python.org/issue13824眺望FileTYpe'的'而不實際打開文件檢查的可能性。我提出的解決方案是使用'os.access'來測試文件名。 – hpaulj