【问题标题】:python argparse: arg with no flagpython argparse:没有标志的arg
【发布时间】:2014-07-09 02:55:22
【问题描述】:

我有以下代码:

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

【问题讨论】:

    标签: python python-3.x argparse


    【解决方案1】:

    是的。

    您有多种解决方案:

    • 正如 Mrav 所述,您可以使用系统参数 (sys.argv[0...])
    • 或者使用 argparse。从documentation(符合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])
    

    【讨论】:

      猜你喜欢
      • 2012-01-05
      • 2015-07-11
      • 2017-12-25
      • 2012-07-15
      • 2017-08-30
      • 2016-04-16
      • 2014-02-12
      • 2015-02-03
      相关资源
      最近更新 更多