【问题标题】:How to fix: assigning argparse argument to variable assigning both argument and value to variable如何修复:将 argparse 参数分配给变量 将参数和值都分配给变量
【发布时间】:2019-12-03 11:55:16
【问题描述】:

试图将 argparse 参数值分配给变量。然后将变量分配为“variable=argument=value”,而不仅仅是“variable=value”。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("test", help="test")
args = parser.parse_args()
variable = args.test
print(variable)

我希望打印的结果是分配给测试的结果。假设程序运行为:

python program.py test=something

打印的结果应该是:

something

实际输出为:

test=something

【问题讨论】:

  • 将您的论点定义为optional,以---test 作为标志。
  • 我有必须定义的位置参数才能运行程序。一种丑陋的方法,虽然有效但看起来很糟糕,是在 variable = args.test.replace('test=','') 中进行替换
  • 或其他解决方案 - 使用'python program.py something`
  • 不要将argparse 中的positionals 和optionals 与positional 与keyword 函数参数混淆。

标签: python-2.7 argparse


【解决方案1】:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-t", "--test", help="test")
args = parser.parse_args()
print(args)   # for debugging help
variable = args.test
print(variable)

测试

python program.py --test something

parser.add_argument("test", help="test") 定义了一个positional 参数,它取决于位置或顺序,而不是标志。标志看起来像--test,一种常见的命令行约定。位置参数不会拆分=(或其他任何东西)上的输入;整个字符串是value。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-15
    • 2016-04-22
    • 1970-01-01
    • 2018-11-05
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多