【问题标题】:How to use argparse parse_args to parse arguments as a string in python? [duplicate]如何使用 argparse parse_args 将参数解析为 python 中的字符串? [复制]
【发布时间】:2019-04-05 08:16:07
【问题描述】:

我的原始代码如下所示适用于命令行调用。但是,有没有一种方法可以将参数列表解析为 Python 中的字符串?

例子:

parser = argparse.ArgumentParser()
parser.parse_args()

你打电话给:

python test.py <args like --a 1 --b 2 ...>

如果我有一个字符串s,也就是上面的args 列表,有没有办法解析它?

【问题讨论】:

    标签: python argparse


    【解决方案1】:

    您可以将字符串拆分成一个列表并传递给parse_args

    parser.parse_args(s.split())
    

    或者如果字符串包含引号和转义字符等类似shell的语法,则使用shlex.split拆分字符串:

    import shlex
    parser.parse_args(shlex.split(s))
    

    【讨论】:

    • 谢谢!我收到这样的错误:ArgumentError: argument --data_dir: conflicting option string: --data_dir,其中data_dir 是我定义的参数之一。你有什么想法吗?
    • 您定义的另一个选项具有与--data_dir 相同的前缀,因此它被认为是冲突的。您可以通过将选项命名为其他名称来解决此问题。
    猜你喜欢
    • 2017-01-13
    • 2017-08-31
    • 2021-07-25
    • 2021-07-13
    • 2018-12-14
    • 2014-03-04
    • 2014-02-21
    • 2016-05-30
    • 2020-07-08
    相关资源
    最近更新 更多