Python argparse: 没有标志的参数

20

我有以下代码:

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个回答

34

是的。

您有多个解决方案:

  • 如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])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接