使用整数参数运行脚本

4 投票
3 回答
5029 浏览
提问于 2025-04-18 13:10

假设我有这个脚本。

#!/usr/bin/env python    
from sys import argv 

filename, value1, value2 = argv

print value1 + value2

现在,我想让这两个变量,value1value2 作为整数传递。现在当我在命令行运行这个时,我得到的结果是这样的。

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 这个工具。

撰写回答