需要为 argparse 输入值。但它不工作

Need to input value for argparse. but it is not working

我正在尝试在以下代码中使用 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',长度=None,宽度=None)

两个值都分配给了高度。

当你运行一个带有命令行参数的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())