我们说我有这个剧本。
#!/usr/bin/env python
from sys import argv
filename, value1, value2 = argv
print value1 + value2
现在,我希望将两个变量value1
和value2
作为整数传递。现在,当我在命令行中运行它时,我会得到类似的东西。
pi@raspberrypi -/Desktop $ python test.py 2 2
22
我想要这样的事情发生。
pi@raspberrypi -/Desktop $ python test.py 2 2
4
我该怎么做?
答案 0 :(得分:4)
将参数转换为整数。
import sys
value1, value2 = (int(x) for x in sys.argv[1:])
这当然假设你正好期待两个可以转换为整数的参数。
如果您想传递任意数量的整数,可以使用
获取它们的列表argnums = [int(x) for x in sys.argv[1:]]
此外,如果您计划编写严格的命令行界面,请考虑使用argparse。
答案 1 :(得分:3)
argv上的所有内容都是字符串。您需要手动将它们转换为整数,例如:
value1 = int(argv[1])
value2 = int(argv[2])
答案 2 :(得分:2)
那是因为参数是作为字符串收到的。
你能做什么?将它们转换为int
:
value1 = int(value1)
value2 = int(value2)