【Python 3.6.1】脚本传参
sys模块的argv方法可获取相应的参数。如下:
- sys.argv[0]表示返回脚本的名称
- sys.argv[1]表示返回传入的第一个参数
- sys.argv[n]表示返回传入的第n个参数
传参的方法,在调用脚本时,参数写在脚本的后面,多个参数用空格分隔,测试如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# 测试脚本如下 [root@dt xxf]# cat par.py import sys for i in range(0, len(sys.argv)): print ("parameter:", i, sys.argv[i]) [root@dt xxf]# # 没有参数,该脚本只返回脚本名称 [root@dt xxf]# python3 par.py parameter: 0 par.py [root@dt xxf]# # 当有一个参数时,返回脚本名称及参数内容 [root@dt xxf]# python3 par.py Hello,World parameter: 0 par.py parameter: 1 Hello,World [root@dt xxf]# # 传入两个参数,两个参数用空格分开 [root@dt xxf]# python3 par.py Hello,World yujiutech parameter: 0 par.py parameter: 1 Hello,World parameter: 2 yujiutech [root@dt xxf]# |
如果只想显示参数,不要脚本名称的话,那么就可以把循环的初始值改为1,如下:
1 2 3 4 5 6 7 8 |
[root@dt xxf]# cat par.py import sys for i in range(1, len(sys.argv)): print ("parameter:", i, sys.argv[i]) [root@dt xxf]# [root@dt xxf]# python3 par.py Hello,YJ parameter: 1 Hello,YJ [root@dt xxf]# |
当然,如果明确就传入一个参数赋值给一个变量的话,就没有必要写循环了,如下:
1 2 3 4 5 6 7 8 9 |
[root@dt xxf]# cat par1.py import sys sname = sys.argv[0] par = sys.argv[1] print ('Parameter:',par) [root@dt xxf]# [root@dt xxf]# python3 par1.py Hello,YJ Parameter: Hello,YJ [root@dt xxf]# |
这里需要注意一下,哪怕只有一个参数,也得先获取argv[0],否则将会报错“IndexError: list index out of range”