使用整数参数运行脚本
假设我有这个脚本。
#!/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
我该怎么做呢?
3 个回答
2
这是因为传入的参数是以字符串的形式接收的。
你可以怎么做呢?把它们转换成int
类型:
value1 = int(value1)
value2 = int(value2)
3
argv里的所有内容都是字符串。你需要手动把它们转换成整数,比如:
value1 = int(argv[1])
value2 = int(argv[2])
5
把你的参数转换成整数。
import sys
value1, value2 = (int(x) for x in sys.argv[1:])
这当然是基于你期望得到正好两个可以转换成整数的参数。
如果你想传递任意数量的整数,可以用下面的方式获取它们的列表:
argnums = [int(x) for x in sys.argv[1:]]
另外,如果你打算写一个比较正式的命令行界面,可以考虑使用 argparse 这个工具。