0.sys 模块
在 Python 中,sys 模块是一个非常常用且十分重要的模块,通过模块中的 sys.argv 就可以访问到所有的命令行参数,它的返回值是包含所有命令行参数的列表(list).
参数个数: len(sys.argv)
脚本名: sys.argv[0]
参数1: sys.argv[1]
参数2: sys.argv[2]
通过程序来说明它的用法:
1.不传递参数时
import sys
if __name__ == '__main__':
print(len(sys.argv))
print type(sys.argv)
for i in range(0, len(sys.argv)):
print('参数 %s 为:%s' % (i, sys.argv[i]))
$ python test.py
输出:
1
<type 'list'>
参数 0 为:/Users/wang/PycharmProjects/testPro/test.py
从输出结果中,我们可以获取两个信息:
- 输入的命令行参数放在了一个list中,sys.argv.
- 没有其他的命令行参数输入时,识别到的参数只有一个,就是脚本名test.py,这是sys.argv[0]的值,将脚本名作为一个参数放在了sys.argv[0]中。
2.传递多个参数
执行命令:
$ python test.py yilishabai xiaohong
输出 :
3
3
['test.py', 'yilishabai', 'xiaohong']
参数 0 为:test.py
参数 1 为:yilishabai
参数 2 为:xiaohong
从输出中,我们可以看到多了两个命令行参数'yilishabai', 'xiaohong'。
3.Shell 传递参数
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
实例
以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名(包含文件路径):
#!/bin/bash
echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";
为脚本设置可执行权限,并执行脚本,输出结果如下所示:
$ chmod +x test.sh
$ ./test.sh 1 2 3
Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3