本文共 1526 字,大约阅读时间需要 5 分钟。
(本例基于win7 + python3.4)
import getopt, sys'''getopt 模块专门用来处理命令行参数函数getopt(args, shortopts, longopts = [])参数 args 一般是sys.argv[1:] shortopts 短格式 (-) longopts 长格式(--) 如:options, args = getopt.getopt(sys.argv[1:], "hp:i:", ["help", "ip=", "port="])参数分析:sys.argv[1:] --- sys.argv[0] 第一个参数,是脚本文件名 --- sys.argv[1:] 第二个及后面的参数,是脚本文件运行所需的参数"hp:i:" 短格式 (shortopts) --- h 后面没有冒号:表示后面不带参数 --- p:和 i:后面有冒号表示后面需要参数["help", "ip=", "port="] 长格式 (longopts) --- help后面没有等号=,表示后面不带参数 --- 其他两个有等号=,表示后面需要参数options 返回值 --- 是个包含元祖的列表,每个元组是分析出来的格式信息,比如 [('-i','127.0.0.1'),('-p','80')] ;args 返回值 ---是个列表,包含那些没有'-'或'--'的参数,比如:['hello','world','you']注意:定义命令行参数时,要先定义带'-'选项的参数,再定义没有'-'的参数使用示例: $ python test.py -i 127.0.0.1 -p 80 hello world you $ python test.py --ip=127.0.0.1 --port=80 hello world you'''def usage(): print('Usage:') print(' -h --help') print(' -i --ip') print(' -p --port') print('Example:') print(' $ python test.py -i 127.0.0.1 -p 80 hello world') print(' $ python test.py --ip=127.0.0.1 --port=80 hello world')try: options, args = getopt.getopt(sys.argv[1:], "hp:i:", ["help", "ip=", "port="])except getopt.GetoptError as err: print('Error:') print(' ', str(err)) usage() sys.exit(2)for opt, value in options: if opt in ("-h", "--help"): usage() elif opt in ("-i", "--ip"): print('ip:', value) elif opt in ("-p", "--port"): print('port:', value)for value in args: print(value)
【运行效果图】
转载地址:http://nkgma.baihongyu.com/