在Python中使用optparse
处理Unix样式通配符参数的正确方法是什么?我有:
myscript.py:
from optparse import OptionParser
parser = OptionParser()
parser.add_option("--input", dest="input", default=None, nargs=1)
parser.add_option("--outdir", dest="outdir", default=None, nargs=1)
(options, args) = parser.parse_args()
我希望能够做到:
myscript.py --input *.txt --outdir mydir/
我不想读取与*.txt
匹配的所有文件的内容。我希望myscript.py
访问他们的文件名,因为有些脚本只是将文件名传递给其他程序而无需打开/读取文件。如何获得一个返回文件名的迭代器,同时仍然允许在通配符友好选项(在本例中为--outdir
)之后传递其他参数,如--input
?感谢。
答案 0 :(得分:2)
Unix shell会将*.txt
扩展为单独的参数,然后再传递给您的程序; Windows的命令解释器不会。
假设您正在使用未首先展开的环境 - 例如,调用python prog.py '*.txt'
,您可以使用glob.glob()自行进行扩展。