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()

帮助

posted @   昀溪  阅读(409)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示