【问题标题】:Need to input value for argparse. but it is not working需要为 argparse 输入值。但它不工作
【发布时间】:2021-07-26 06:23:20
【问题描述】:

我正在尝试在以下代码中使用 python argparse。我希望用户输入如下文本。 -x 8 -l 9 -b 20

import argparse
parser = argparse.ArgumentParser(description='Sample coding with arguments')
parser.add_argument('-x', '--height', help='Height of the box')
parser.add_argument('-l', '--length', type=int, help='Length of the box')
parser.add_argument('-b', '--breadth', type=int, help='Breadth of the box')
args = parser.parse_args([input("enter text: ")])
print (args)

用户只应在系统要求输入时输入这些数据。 如果我只为 1 个参数输入值,则以下代码有效。但是如果我使用超过 1 则不起作用。 有两个参数,它显示了这个结果

输入文本:-x 9 -l 7

命名空间(高度='9 -l 7',长度=无,宽度=无)

两个值都分配给高度。

【问题讨论】:

    标签: python argparse command-line-tool


    【解决方案1】:

    当你从命令行运行带有参数的 python 脚本时,说:

    test.py -x 9 -l 7
    

    解释器有一个sys.argv

    sys.argv == ["test.py", "-x", "9", "-l", "7"]
    

    默认提供 argparse sys.argv[1:]["-x", "9", "-l", "7"]

    你提供了["-x 9 -l 7"]

    相反,您需要拆分字符串:

    parser.parse_args(input("enter text: ").split())
    

    【讨论】:

      猜你喜欢
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 2017-09-13
      • 2021-12-30
      • 2015-03-05
      • 1970-01-01
      相关资源
      最近更新 更多