可以使用来验证文件名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