我已经写了一个Python脚本,它接受通过Python的optparse
模块input。 我也从sys.argv
input。
当我使用其中任何一个,程序正常工作。 例如:
python dperf.py -m 1 -c 2 -n 3 python dperf.py foobar
但是,当我以这种方式提供意见时,并不是这样。
python dperf.py foobar -m 1 -c 2 -n 3
在我使用sys.argv
的方式有错误吗?
parser = optparse.OptionParser() #migration parser.add_option("-m", type="float", dest="migr") #collection parser.add_option("-c", type="float", dest="coll") #num of lines to read parser.add_option("-n", type="float", dest="fileread") (options, args) = parser.parse_args() ti = options.migr colle = options.coll linereadfiles = options.fileread apps = sys.argv[1:]
如果通过parse_args()
解析选项,请不要直接使用sys.argv
而应该返回包含尚未被OptionParser
解析的部分的OptionParser
。
例如在你的代码中替换
apps = sys.argv[1:]
通过
apps = args
(或只是废弃apps
,继续与args
)。