Python命令行参数解析模块argparse
当写一个Python脚本时经常会遇到不同参数不同功能的情况,如何做一个更好看的命令帮助信息以及对命令参数解析呢?
这就需要使用argparse模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #!/usr/bin/env python # -*- coding: utf-8 -*- import sys import os import argparse __metaclass__ = type class Inventory: def __init__( self ): self ._read_cli_args() if self ._args. list : # 如果输入的参数为 --list 那么将执行这里 print ( "list" ) elif self ._args.host: print ( self ._args.host) def _read_cli_args( self ): # 创建一个解析对象 parser = argparse.ArgumentParser(description = '这是命令的说明描述信息' ) # required=True 表示必须提供该参数 parser.add_argument( "--type" , "-t" , required = True , help = "类型 tomcat|dubbo" ) """ 向对象添加你要关注的命令行参数 一般写两个 一个长参 一个短参 action表示值赋给键的方式 布尔值(store_true|store), 当读取的参数中出现指定的参数时的行为,也就是存储True还是False 我这里写的是 store_true 表示输入 inventory.py --list 后,你获取list值就是true否则就是false """ parser.add_argument( "--list" , "-l" , action = "store_true" , help = "--list 参数功能说明" ) # store的含义是需要在 --host 接收一个参数,并把这个参数存储到这个host中 parser.add_argument( "--host" , action = "store" , help = "--host 参数功能说明" ) # 为参数值指定可选范围,也就是这个参数的值只能是 0 1 2 其中之一,且默认值为1 parser.add_argument( "-c" , "--mychoice" , type = int , choices = [ 0 , 1 , 2 ], default = 1 , help = "我的选择" ) self ._args = parser.parse_args() # 进行解析 # 解析完成后,self_args包含了所有必要的命令参数和值,如果想要获取那么就 self._args.键 来获取 print ( self ._args) def main(): Inventory() if __name__ = = "__main__" : try : main() finally : sys.exit() |
帮助
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥