在Python中从命令行读取Unix通配符文件名
在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 个回答
2
在Unix系统中,当你输入像*.txt
这样的命令时,它会自动把所有以.txt结尾的文件名分开,然后再传给你的程序;而在Windows的命令行中,这个过程不会发生。
假设你在一个不会自动扩展的环境中,比如你输入python prog.py '*.txt'
,那么你可以使用glob.glob()这个工具,自己来处理这些文件名的扩展。