- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行 Python 3.6.8::Anaconda 自定义(64 位)并从 argparse 得到奇怪的结果。尽管有 -x,trainandexecute=False 的值
def get_parameters():
startup = '-x -b'
sys.argv = startup.split(' ')
ap = argparse.ArgumentParser()
ap.add_argument('-x', '--trainandexecute', action='store_true')
ap.add_argument('-b', '--debug', action='store_true')
ap.add_argument('-d', '--rundate', action='store')
print(ap.parse_args())
return vars(ap.parse_args())
get_parameters()
这将返回以下输出。请注意,尽管有 -x 标志,但 trainandexecute=False。
Namespace(debug=True, execute=False, train=False, trainandexecute=False)
{'train': False,
'execute': False,
'trainandexecute': False,
'debug': True}
但是,此测试在下一个 Jupyter 单元中有效,并且它不是我的环境:
def get_test_parameters():
startup = '-b -x'
sys.argv = startup.split(' ')
print(sys.argv)
ap = argparse.ArgumentParser()
ap.add_argument('-x', '--x', action='store_true')
ap.add_argument('-b', '--debug', action='store_true')
print(ap.parse_args())
return vars(ap.parse_args())
所以输出:
get_test_parameters()
是:
['-b', '-x'] # print(sys.argv)
Namespace(debug=False, x=True) # print(ap.parse_args())
{'x': True, 'debug': False} # return vars(ap.parse_args())
我很生气...
最佳答案
你的错误在这一行:
sys.argv = startup.split(' ')
sys.argv
中的第一个值被视为脚本的名称,而不是选项。尝试运行 ap.parse_args(startup.split())
- 你会看到正确的答案。
顺便说一下,不要将任何参数传递给 split()
。如果你传递 ""
并且你有一个以上的连续空格,那么拆分的结果将是空字符串。
关于python-3.x - argparse 没有返回 store_true 的期望值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55602053/
这个问题在这里已经有了答案: Option accepted with and without value (2 个答案) 关闭 10 年前。 我需要识别参数是单独给出还是与可选字符串一起给出,或者
我将 argparse 用于 cli 参数。我想要一个参数 -t,来执行温度测试。我还想指定温度测量的时间段。 我要: python myscript.py -t 每 60 秒执行一次测量, pyth
我在 Python 中使用 argparse 模块来解析在命令行界面中键入的参数。我有以下对子解析器对象的 add_argument 调用: submit_parser.add_argument('-
我正在运行 Python 3.6.8::Anaconda 自定义(64 位)并从 argparse 得到奇怪的结果。尽管有 -x,trainandexecute=False 的值 def get_pa
我是一名优秀的程序员,十分优秀!