如何使用 argparse 通过终端将 3/2 等有理数输入到我的 python 脚本中?当我想使用 argparse 输入 pi 或任何其他无理数(如 sqrt(2))时,我遇到了同样的问题。
问候,哈迪
如何使用 argparse 通过终端将 3/2 等有理数输入到我的 python 脚本中?当我想使用 argparse 输入 pi 或任何其他无理数(如 sqrt(2))时,我遇到了同样的问题。
问候,哈迪
和
import argparse
import sys
print(sys.argv)
parser = argparse.ArgumentParser()
parser.add_argument('aNumber')
args = parser.parse_args()
print(args)
样本运行:
1414:~/mypy$ python3 stack53964076.py -h
['stack53964076.py', '-h']
usage: stack53964076.py [-h] aNumber
positional arguments:
aNumber
optional arguments:
-h, --help show this help message and exit
1417:~/mypy$ python3 stack53964076.py 3/2
['stack53964076.py', '3/2']
Namespace(aNumber='3/2')
1417:~/mypy$ python3 stack53964076.py pi
['stack53964076.py', 'pi']
Namespace(aNumber='pi')
1417:~/mypy$ python3 stack53964076.py sqrt(2)
bash: syntax error near unexpected token `('
1417:~/mypy$ python3 stack53964076.py 'sqrt(2)'
['stack53964076.py', 'sqrt(2)']
Namespace(aNumber='sqrt(2)')
在所有这些情况下args.aNumber
都将是一个字符串。在最后一种情况下,我必须包含引号以防止 shell 尝试解析 '(' 本身。
处理这些字符串是您自己的代码的责任,而不是argparse
.