我编写了一个python脚本,它通过optparsepython模块接受输入.我也接受了输入sys.argv.
当我使用其中任何一个时,程序正常工作.例如:
python dperf.py -m 1 -c 2 -n 3
python dperf.py foobar
Run Code Online (Sandbox Code Playgroud)
但是,当我以这种方式提供输入时,它不会.
python dperf.py foobar -m 1 -c 2 -n 3
Run Code Online (Sandbox Code Playgroud)
我使用的方式有错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:]
Run Code Online (Sandbox Code Playgroud)
如果通过分析选项parse_args()的OptionParser,不要用sys.argv直接,但返回的args,而不是它应该包含尚未被解析的部分OptionParser.
例如在您的代码替换中
apps = sys.argv[1:]
Run Code Online (Sandbox Code Playgroud)
通过
apps = args
Run Code Online (Sandbox Code Playgroud)
(或者只是废弃apps并继续args).
| 归档时间: |
|
| 查看次数: |
910 次 |
| 最近记录: |