Python 2.7 optparse 未读取第二个标志
Python 2.7 optparse not reading 2nd flag
有人可以帮我吗?我不确定我做错了什么,但我似乎无法从命令行读取第二个选项。
from optparse import OptionParser
parser=OptionParser()
parser.add_option("-s", action="store", type="string", dest="scenario")
parser.add_option("-l", action="store", type="string", dest="logger")
(options, args)=parser.parse_args()
print options.scenario
print options.logger
print options
打印结果
>>python test.py -sfoo -lbar
foo
None
{'logger': None, 'scenario': 'foo'}
此外,我不能在标志和参数之间放置 space -sfoo
可以,但 -s foo
不行。这很烦人。谁能看到我做错了什么?提前致谢。
正如@user3757614 在他的评论中所建议的那样,请改用 argparse
。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-s', '--scenario', required=True, dest="scenario")
parser.add_argument('-l', '--logger', required=True, dest="logger")
args = parser.parse_args()
print args
print args.scenario
print args.logger
并在命令行中:
$ python test.py -s test1 -l test2
Namespace(logger='test2', scenario='test1')
test1
test2
有人可以帮我吗?我不确定我做错了什么,但我似乎无法从命令行读取第二个选项。
from optparse import OptionParser
parser=OptionParser()
parser.add_option("-s", action="store", type="string", dest="scenario")
parser.add_option("-l", action="store", type="string", dest="logger")
(options, args)=parser.parse_args()
print options.scenario
print options.logger
print options
打印结果
>>python test.py -sfoo -lbar
foo
None
{'logger': None, 'scenario': 'foo'}
此外,我不能在标志和参数之间放置 space -sfoo
可以,但 -s foo
不行。这很烦人。谁能看到我做错了什么?提前致谢。
正如@user3757614 在他的评论中所建议的那样,请改用 argparse
。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-s', '--scenario', required=True, dest="scenario")
parser.add_argument('-l', '--logger', required=True, dest="logger")
args = parser.parse_args()
print args
print args.scenario
print args.logger
并在命令行中:
$ python test.py -s test1 -l test2
Namespace(logger='test2', scenario='test1')
test1
test2