python输入处理系列文章,专栏总目录:
1、sys模块获取命令行参数
在 Python 中,sys 模块是一个非常常用且十分重要的模块,通过模块中的 sys.argv 就可以访问到所有的命令行参数,它的返回值是包含所有命令行参数的列表(list)。
参数个数: len(sys.argv)
脚本名: sys.argv[0]
参数1: sys.argv[1]
参数2: sys.argv[2]
...
下面我们通过程序来说明它的用法,test.py内容如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
def main():
print('参数个数为:', len(sys.argv), '个参数。')
print('参数列表:', str(sys.argv))
print('脚本名为:', sys.argv[0])
for i in range(1, len(sys.argv)):
print('参数 %s 为:%s' % (i, sys.argv[i]))
if __name__ == "__main__":
main()
下面我们通过命令行来运行该python脚本:
1)不传递参数
python test.py
输出:
参数个数为: 1 个参数。
参数列表: ['test.py']
脚本名为: test.py
2)传递多个参数
python test.py ouyangpeng csdn
输出:
参数个数为: 3 个参数。
参数列表: ['test.py', 'ouyangpeng', 'csdn']
脚本名为: test.py
参数 1 为:ouyangpeng
参数 2 为:csdn
3)传递多个参数和命令行选项
python test.py ouyangpeng csdn -u username -p password
输出:
参数个数为: 7 个参数。
参数列表: ['test.py', 'ouyangpeng', 'csdn', '-u', 'username', '-p', 'password']
脚本名为: test.py
参数 1 为:ouyangpeng
参数 2 为:csdn
参数 3 为:-u
参数 4 为:username
参数 5 为:-p
参数 6 为:password
识别到的参数有6个,分别是脚本名 test.py,参数 1 为:ouyangpeng,参数 2 为:csdn,命令行选项 -u 和 -p 都被识别为参数了,这样不合理。所以,引入argparse模块来识别命令行选项。