python - 使用 argparse 传递以减号 (-) 开头的参数值

标签 python python-3.x command-line command-line-arguments argparse

我正在做一个命令行实用程序,可以接收以减号或加号开头的参数,例如 -gtest+gtest 问题是 python3不接受这个:

这是重现此问题的最小代码: 导入argparse

if (__name__== "__main__"):
    parser = argparse.ArgumentParser()
    parser.add_argument('-s', '--string', action='store',
                        help='String value')
    p = parser.parse_args()
    if p.string:
        print("pass value:", p.string)

我尝试将其调用为:

./example.py -s -gtest
./example.py -s "-gtest"
./example.py -s \-gtest

并且总是出现下一个错误:

usage: example.py [-h] [-s STRING]
example.py: error: argument -s/--string: expected one argument

所以,我的问题是如何使用 argparse 传递以减号开头的参数

最佳答案

您可以使用以下命令运行它:

python example.py -s-gtest
python example.py -s+gtest

因此,只需不放置任何空格,也不以任何特殊方式转义它。

关于python - 使用 argparse 传递以减号 (-) 开头的参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47408435/

相关文章:

windows - Windows 上是否有 cat 的替代品

python - Tensorflow 没有像 Pytorch 那样检测 GPU

python - 如何导入一个位于上方两个目录和下方一个目录中的 Python 类?

适合新手的 Python 版本

shell - 命令行工具的使用语句中打印的参数顺序是否有标准?

c++ - 无法将单指针转换为双指针

python - 如何从公式中近似值

python - 如何使用 elasticsearch-dsl 在嵌套查询周围添加 OR 过滤器

python - 使用预训练模型 inception_v3,val_loss 增加,而 val_acc 保持在 60%

arrays - numpy 二维数组分区的优化方法