python中argparse模块怎么使用

发布时间:2022-06-18 13:35:59 作者:iii
来源:亿速云 阅读:155

本篇内容主要讲解“python中argparse模块怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python中argparse模块怎么使用”吧!

argparse模块用法

一、 概念

argsparse是python的命令行解析的标准模块,内置于python,不需要安装。这个库可以让我们直接在命令行中就可以向程序中传入参数并让程序运行。

在这里我们利用git来演示命令行运行

git -h
git -version 
git show

二、 基础

1、 使用步骤

1.1 总步骤
1.导包:
import argparse
2.创建对象:
parser = argparse.ArgumentParser()
3.添加参数:
parser.add_argument()
4.解析参数:
parser.parse_args()
1.2 创建对象
parser = ArgumentParser(prog=None, usage=None,description=None, epilog=None, parents=[],formatter_class=argparse.HelpFormatter, prefix_chars='-',fromfile_prefix_chars=None, argument_default=None,conflict_handler='error', add_help=True)

参数说明:

  1. prog:程序的名字,默认为sys.argv[0],用来在help信息中描述程序的名称

  2. usag:描述程序用途的字符串

  3. description:help信息前的文字

  4. epilog:help信息之后的信息

  5. add_help:是否添加帮助信息

  6. prefix_chars:参数前缀,默认为-

  7. fromfile_prefix_chars:前缀字符,放在文件名之前

  8. argument_default:参数的全局默认值

  9. conflict_hander:对冲突的处理方式,默认为返回错误“error”。还有“resolve”,智能解决冲突。当用户给程序添加了两个一样的命令参数时,“error”就直接报错,提醒用户。而“resolve”则会去掉第一次出现的命令参数重复的部分或者全部(可能是短命令冲突或者全都冲突)

1.3 添加参数
add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

参数说明:

# 可选参数
parser.add_argument("-f", "--foo")
# 位置参数
parser.add_argument("bar")  # 位置参数在运行时一定要输入
parse.add_argument('--version',action = 'version',version = '%(prog)s2.0')

参数的几种写法:

python py.py -i 1  # 使用空格分开
python py.py --integer=1  # 长选项使用等号分开
python py.py -i1  # 短选项可以写一起
1.4 解析参数
args = parser.parse_args()  # 括号里面可以传入命令行的参数
args_ = parser.parse_args("-i=1".split("="))

三、 使用案例

我们可以创建一个模板:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = "A.L.Kun"
__file__ = "demo01.py"
__time__ = "2022/6/16 17:12"
__email__ = "liu.zhong.kun@foxmail.com"
from typing import Callable
from functools import wraps
import sys, argparse
def terminal(param: bool = False):  # 判断是否要使用命令行参数
    def get_params(fun: Callable):
        if param:
            parser = argparse.ArgumentParser(description="help document")
            "---------------------------------------------------------------"
			# 如果需要从命令行传入参数时,就在这里添加
            "---------------------------------------------------------------"
            args = parser.parse_args()
        else:
            args = None
        @wraps(fun)
        def inner():
            ret = fun(args)  # 可能在传参数是还要进行其他的初始化操作
            return ret
        return inner
    return get_params
@terminal()  # 使用装饰器
def main(args): 
    print(args)
if __name__ == "__main__":
    main()
    sys.exit(0)

使用案例,创建一个程序,可以连接邮箱的SMTP服务

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = "A.L.Kun"
__file__ = "demo01.py"
__time__ = "2022/6/16 17:12"
__email__ = "liu.zhong.kun@foxmail.com"
from smtplib import SMTP
from typing import Callable
from functools import wraps
import sys, argparse
def terminal(param: bool = False):
    def get_params(fun: Callable):
        if param:
            parser = argparse.ArgumentParser(description="help document")
            "---------------------------------------------------------------"
            parser.add_argument('--version', "-v", action='version', version='%(prog)s 2.0')
            parser.add_argument("-u", "--username", type=str, help="Enter the SMTP server account", required=True)
            parser.add_argument("-p", "--password", type=str, help="Enter the SMTP server password", required=True)
            "---------------------------------------------------------------"
            args = parser.parse_args()
        else:
            args = None
        @wraps(fun)
        def inner():
            ret = fun(args)
            return ret
        return inner
    return get_params
@terminal(True)
def main(args):
    smtp = SMTP('smtp.qq.com')
    smtp.login(args.username, args.password)
    smtp.quit()
    smtp.close()
if __name__ == "__main__":
    main()
    sys.exit(0)

到此,相信大家对“python中argparse模块怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. Python argparse模块使用方法解析
  2. argparse模块怎么在Python中使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python argparse

上一篇:怎么排查Javascript内存泄漏

下一篇:c语言如何分离三位数

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》