Python的argparse库使用详解

作者:BrownFly 时间:2023-06-13 11:27:36 

argparse是python标准库里面用来处理命令行参数的库

命令行参数分为位置参数和选项参数:

位置参数就是程序根据该参数出现的位置来确定的

如:[root@openstack_1 /]# ls root/    #其中root/是位置参数

选项参数是应用程序已经提前定义好的参数,不是随意指定的

如:[root@openstack_1 /]# ls -l    # -l 就是ls命令里的一个选项参数、

基本使用


import argparse

# 创建解析器
parser = argparse.ArgumentParser(description = 'This is a test')
parser.parse_args()

可以在shell中测试:


$ python test.py --help
...

添加参数


import argparse

parser = argparse.ArgumentParser(description = 'This is a test')
parser.add_argument("-p","--port",help='increase output port') # 定义了可选参数-p和--port,赋值后,其值保存在args.port中(其值都是保存在最后一个定义的参数中)
args = parser.parse_args()
print(args.echo)

argparse.ArgumentParser()方法参数须知:一般我们只选择用description

          prog=None     - 程序名

          description=None,    - help时显示的开始文字

           epilog=None,     - help时显示的结尾文字

          parents=[],        -若与其他参数的一些内容一样,可以继承

          formatter_class=argparse.HelpFormatter,     - 自定义帮助信息的格式

          prefix_chars='-',    - 命令的前缀,默认是‘-'

          fromfile_prefix_chars=None,     - 命令行参数从文件中读取

          argument_default=None,    - 设置一个全局的选项缺省值,一般每个选项单独设置

          conflict_handler='error',     - 定义两个add_argument中添加的选项名字发生冲突时怎么处理,默认处理是抛出异常

          add_help=True    - 是否增加-h/--help选项,默认是True)

add_argument()方法参数须知:

    name or flags...    - 必选,指定参数的形式,一般写两个,一个短参数,一个长参数

使用时候:


$ python test.py -p 50

$ python test.py --port 50

指定类型

我们也可以在添加参数的时候指定其类型。


import argparse

parser = argparse.ArgumentParser(description = 'This is a test')
parser.add_argument("square",help="display a given number",type=int) # 指定给square的参数为int类型

可选参数


import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", help="increase output verbosity")
args = parser.parse_args()
if args.v:
 print("v turned on")

使用:


$ python test.py -v any

文档

更多应用请百度或者查文档:https://docs.python.org/3/library/argparse.html#module-argparse

来源:https://segmentfault.com/a/1190000016608900

标签:Python,argparse
0
投稿

猜你喜欢

  • Python基本运算几何运算处理数字图像示例

    2021-08-22 23:25:05
  • 利用Pytorch实现ResNet网络构建及模型训练

    2022-02-24 19:57:59
  • ASP幻灯片

    2009-09-04 18:05:00
  • 关于利用:first-letter实现首字下沉的一些看法

    2010-04-20 17:19:00
  • Python轻松搞定视频剪辑重复性工作问题

    2022-12-18 16:06:54
  • python中的__init__ 、__new__、__call__小结

    2021-07-19 20:10:38
  • python框架flask知识总结

    2023-07-27 20:24:53
  • PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明

    2023-11-14 19:42:56
  • Oracle收购TimesTen 提高数据库软件性能

    2010-07-21 13:03:00
  • python3 tkinter实现添加图片和文本

    2022-08-07 04:28:17
  • layui 上传文件_批量导入数据UI的方法

    2024-05-22 10:36:41
  • MySql中的json_extract函数处理json字段详情

    2024-01-14 21:06:23
  • PHP abstract 抽象类定义与用法示例

    2023-06-28 03:52:44
  • Python中请不要再用re.compile了

    2021-08-30 23:57:51
  • MySQL 实现lastInfdexOf的功能案例

    2024-01-20 15:16:51
  • 超常用的PHP正则表达式收集整理

    2024-05-03 15:35:57
  • 详细讲解HTTP协议工作方式

    2022-01-08 11:55:59
  • JS中实现JAVA的hashCode算法

    2008-08-03 17:00:00
  • Python文件简单操作及openpyxl操作excel文件详解

    2023-04-26 14:23:22
  • Python办公自动化处理的10大场景应用示例

    2022-06-30 07:04:32
  • asp之家 网络编程 m.aspxhome.com