3

我编写了一个 python 脚本,它通过optparsepython 模块接受输入。我也接受输入sys.argv

当我使用其中任何一个时,程序都可以正常工作。例如:

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:]
4

1 回答 1

8

如果您通过 的 解析选项parse_args()OptionParser请不要sys.argv直接使用,而是返回args的应该包含 . 尚未解析的部分OptionParser

例如在您的代码替换

 apps = sys.argv[1:]

经过

apps = args

(或者只是废弃apps并继续args)。

于 2013-02-12T20:23:45.943 回答