可以使用來驗證文件名cmd行參數的文件擴展名嗎?python argparse文件擴展名檢查
例如如果我有一個python腳本,我從CMD線運行:
$ script.py file.csv
$ script.py file.tab
$ script.py file.txt
我想argparse接受一日2個CMD行選項,但拒絕第三
我知道你可以做這樣的事情:
parser = argparse.ArgumentParser()
parser.add_argument("fn", choices=["csv","tab"])
args = parser.parse_args()
指定的CMD線選擇兩個有效的選擇
什麼,我想是這樣的:
parser.add_argument("fn", choices=["*.csv","*.tab"])
爲cmd行選項指定兩個有效的文件擴展名。不幸的是,這不起作用 - 有沒有辦法使用來實現?
ummmm .... notcsv輸入名稱不正確?這也取決於'解析器'作爲一個全球性的,而我認爲提出異常是正確的方式... – 2013-03-04 14:37:54
我想到了這一點...但我想保持簡單的例子...我想你可以做'file_choices (('.csv','.tab))'這很好。或者你可以改變檢查到'如果不是在選擇'ext'是'os.path.splitext(fname)[1]'或其他任何東西...... – mgilson 2013-03-04 14:39:53
Jon Clements和mgilson的答案現在看起來類似 - 有沒有在這裏使用lambda的好處是什麼? - 它看起來似乎比Jon – bph 2013-03-04 14:48:24