python argparse: 无标志参数
我有以下代码:
parser.add_argument('file', help='file to test')
parser.add_argument('-revs', help='range of versions', nargs='+', default=False)
有没有办法在使用的时候不使用这个标志 -revs
,像这样:
./somescript.py settings.json 1 2 3 4
1 个回答
36
是的。
你有几种解决方案:
- 正如Mrav提到的,你可以使用系统参数(sys.argv[0...])
或者使用argparse。根据文档(这个是兼容python3的),你可以这样做:
if __name__ == '__main__': parser = ArgumentParser() parser.add_argument('file') parser.add_argument('revs', metavar='N', type=int, nargs='+', help='revisions') res = parser.parse_args() pprint(res)
然后你可以看到结果:
$ ./test.py settings.json 1 2 3
Namespace(file='settings.json', revs=[1, 2, 3])