从Python中的命令行读取Unix通配符文件名

时间:2013-02-24 00:03:33

标签: python shell unix command-line optparse

在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?感谢。

1 个答案:

答案 0 :(得分:2)

Unix shell会将*.txt扩展为单独的参数,然后再传递给您的程序; Windows的命令解释器不会。

假设您正在使用未首先展开的环境 - 例如,调用python prog.py '*.txt',您可以使用glob.glob()自行进行扩展。