【问题标题】:Python argparse with possibly empty string valuePython argparse 可能为空字符串值
【发布时间】:2020-02-12 05:43:31
【问题描述】:

我想使用 argparse 在我的主函数中传递一些值。在调用 python 文件时,我总是希望包含参数的标志,同时包含或排除它的字符串参数。这是因为如果可能的话,调用 python 文件的一些外部代码会变得简单得多。

通过调用 parser.add_argument 添加参数时,我尝试将默认值设置为 default=None 并将其设置为 default=''。我自己似乎无法完成这项工作..

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-p', '--projects_to_build', default='')
    args = parser.parse_args()

这个调用工作正常:

py .\python_file.py -p proj_1,proj_2,proj_3

此调用不会:

py .\python_file.py -p

python_file.py: error: argument -p/--projects_to_build: expected one argument

【问题讨论】:

    标签: python-3.x argparse


    【解决方案1】:

    您需要将'?'nargs 值与const='' 一起传递

    parser.add_argument('-p', '--projects_to_build', nargs='?', const='')
    

    您还应该考虑添加required=True,这样您就不必同时传递default=''

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 2012-11-13
      • 2017-01-13
      • 2016-12-31
      • 2013-08-11
      • 1970-01-01
      • 2013-12-03
      相关资源
      最近更新 更多