if __name__=='__main__':
parser = OptionParser()
parser.add_option("-i", "--input_file",
dest="input_filename",
help="Read input from FILE", metavar="FILE")
(options, args) = parser.parse_args()
print options结果是
$ python convert.py -i video_*
{'input_filename': 'video_1.wmv'}当前文件夹下有video_1-6.wmv。问题是为什么video_*会变成video_1.wmv。我哪里做错了?
发布于 2008-11-23 16:20:25
Python与此无关--它是shell。
打电话
$ python convert.py -i 'video_*'它会传入通配符。
其他6个值是作为args传递的,没有附加到-i,就像运行python convert.py -i video_1 video_2 video_3 video_4 video_5 video_6一样,并且-i只附加到紧邻的下一个参数。
也就是说,您最好不要使用options.input,而是直接从args读取输入文件名。
发布于 2008-11-23 16:20:51
打印出args,您将看到其他文件的位置...
它们在argv中被转换为单独的参数,optparse只接受第一个参数作为input_filename选项的值。
发布于 2008-11-23 20:22:26
澄清一下:
aprogram -e *.wmv在Linux shell上,所有通配符(*.wmv)都由shell展开。所以aprogram实际上接收到了参数:
sys.argv == ['aprogram', '-e', '1.wmv', '2.wmv', '3.wmv']就像Charles说的,你可以引用参数,让它直接传入:
aprogram -e "*.wmv"这将传入:
sys.argv == ['aprogram', '-e', '*.wmv']https://stackoverflow.com/questions/312673
复制相似问题