前言

本文主要讲解sys.argv[]的使用方法。


一、sys.argv是什么?

sys.arg[]的作用就是存储在运行python脚本时候从外部往被运行的py文件里面传递的参数,是一个列表对象。利用好这个属性可以极大的增强python脚本的交互性。

二、实例

举例1:

test.py 文件内容如下:

[wqf@b1i10 ~]$ cat test.sh

import sys

arg1=sys.argv[0]
arg2=sys.argv[1]
arg3=sys.argv[2]
arg=sys.argv[:]

print(arg1)
print(arg2)
print(arg3)
print(arg)

运行test.py的test.sh文件

[wqf@b1i10 ~]$ cat test.sh

python test.py "hello" "world"

运行结果:

[wqf@b1i10 ~]$ sh test.sh

test.py
hello
world
['test.py', 'hello', 'world']

从上面的结果,我们可以看到使用文件名作为参数执行脚本文件,argv[0]是被调用的脚本名称,argv[:]是一个列表。

如果我们通过 -m module_name执行模块(即在sys.path中搜索指定模块),argv[0]是完整路径名。

[wqf@b1i10 ~]$ cat test.sh

python -m test "hello" "world"

运行结果:

[wqf@b1i10 ~]$ sh test.sh

/apps/wqf/test.py
hello
world
love
['/apps/wqf/test.py', 'hello', 'world']

举例2: 如果我们要从外部获取输入整数进行计算,如下:

[wqf@b1i10 ~]$ cat test_sum.py

import sys

def test(argv):
	c=a+b
	d=int(a)+int(b)
	print("c=",c)
	print("d=",d)

if __name__ == "__main__":
	a=sys.argv[1]
	b=sys.argv[2]
	test(sys.argv)	
[wqf@b1i10 ~]$ cat test_sum.sh
python test_sum.py 3 4

[wqf@b1i10 ~]$ sh test_sum.sh
('c=', '34')
('d=', 7)
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐