一文看懂命令行参数的用法——Python中的getopt神器
1、短格式和长格式参考原文:
Python模块之命令行参数解析 - 每天进步一点点!!! - 博客园 https://www.cnblogs.com/madsnotes/articles/5687079.html
python getopt使用 - tianzhu123的专栏 - CSDN博客 https://blog.csdn.net/tianzhu123/article/details/7655499
在运行程序时,可能需要根据不同的条件,输入不同的命令行选项来实现不同的功能。这时候就用到getopt模块了。
# 参数args一般是sys.argv[1:],sys.argv[1:] 过滤掉第一个参数(它是脚本名称,不是参数的一部分)# shortopts :短格式 (-) ,后面没有冒号,表示后面不带参数,后面有冒号表示后面需要参数# longopts :长格式(--) ,后面没有等号=,表示后面不带参数,有=,表示后面需要参数# 使用方法:opts, args = getopt.getopt(args, shortopts, longopts = [])options,args = getopt.getopt(sys.argv[1:],"hp:i:",["help","ip=","port="])
2、options和args
import getoptimport sysdef usage(): '提示命令行参数' print( '''Usage:sys.args[0] [option]-h or --help:显示帮助信息-i or --ip:ip-p or --port:port ''' )def main(): if len(sys.argv) == 1: usage() sys.exit() try: # sys.argv[1:] 过滤掉第一个参数(它是脚本名称,不是参数的一部分) # 返回值 options 是个包含元组的列表,每个元组是分析出来的格式信息,比如 [('-i','127.0.0.1'),('-p','80')] # args 是个列表,包含那些没有‘-’或‘--’的参数,比如:['55','66'] options, args = getopt.getopt(sys.argv[1:], "hp:i:", ["help", "ip=", "port="]) except getopt.GetoptError: print("argv error,please input") sys.exit() for name, value in options: if name in ("-h", "--help"): usage() if name in ("-i", "--ip"): print('ip is----', value) if name in ("-p", "--port"): print('port is----', value) print('argv is----', args)if __name__ == "__main__": main()
3、测试
命令行中输入:python test.py -h -i 127.0.0.1 --port=80 55 66 -h
结果:
是不是很简单!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。