使用 argparse 传递以减号 (-) 开头的参数值
Pass a parameter value starting with minus (-) using 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
所以简单地不放置任何 space,也不以任何特殊方式转义它。
我正在做一个命令行实用程序,它可以接收以减号或加号开头的参数,例如,-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
所以简单地不放置任何 space,也不以任何特殊方式转义它。