python脚本传入参数--精讲(getopt模块)
1.最常用的sys.argv[],这个不多谈
2.形如
dahu@dahu-OptiPlex-3046:~/json_folder$ python sub1.py -abb -oaaa --output=out -caa -abb3 --output=papa file1 -abb3 file2
输出:
============ opts ================== [('-a', 'bb'), ('-o', 'aaa'), ('--output', 'out'), ('-c', 'aa'), ('-a', 'bb3'), ('--output', 'papa')] 6 ============ args ================== ['file1', '-abb3', 'file2'] 3 -a ==> bb -o ==> aaa --output ==> out -c ==> aa -a ==> bb3 --output ==> papa
code:
#coding=utf-8 #!/usr/bin/env python import sys,getopt
# 短格式 后面没有冒号:表示后面不带参数,后面有冒号表示后面需要参数 # 长格式 后面没有等号 =,表示后面不带参数,其他有 =,表示后面需要参数 # 注意一旦出现不带长短格式的标记'-',就进入arg模式了,例如例子中file1后面的-abb3就认为是arg,而不是opt def usage(): print("Usage:%s [-a|-o|-c] [--help|--output] args...." % sys.argv[0]) if "__main__" == __name__: try: opts, args = getopt.getopt(sys.argv[1:], "a:o:c:", ["help", "output="]) print("============ opts ==================") print(opts) print len(opts) print("============ args ==================") print(args) print len(args)
# check all param for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit(1) elif opt in ("-t", "--test"): print("for test option") else: print("%s ==> %s" % (opt, arg)) except getopt.GetoptError: print("getopt error!") usage() sys.exit(1)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!