python-argparse使用

官方文档:https://docs.python.org/zh-cn/3.7/library/argparse.html?highlight=argparse#module-argparse

argparse 模块可以编辑用户友好的命令行接口

import argparse"""
获取一个整数数列并计算合计或者最大值
"""parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',const=sum, default=max,help='sum the integers (default: find the max)')args = parser.parse_args()
print(args.accumulate(args.integers))

1.创建一个解析器

  parser = argparse.ArgumentParser(description='Process som integers.')

  ArgumentParser对象包含将命令行解析成Python数据类型所需的全部信息

"""Object for parsing command line strings into Python objects.
  • prog - 程序的名称(默认:sys.argv[0]
  • usage - 描述程序用途的字符串(默认值:从添加到解析器的参数生成)
  • description - 在参数帮助文档之前显示的文本(默认值:无)
  • epilog - 在参数帮助文档之后显示的文本(默认值:无)
  • parents - 一个 ArgumentParser 对象的列表,它们的参数也应包含在内
  • formatter_class - 用于自定义帮助文档输出格式的类
  • prefix_chars - 可选参数的前缀字符集合(默认值:'-')
  • fromfile_prefix_chars - 当需要从文件中读取其他参数时,用于标识文件名的前缀字符集合(默认值:None
  • argument_default - 参数的全局默认值(默认值: None
  • conflict_handler - 解决冲突选项的策略(通常是不必要的)
  • add_help - 为解析器添加一个 -h/--help 选项(默认值: True
  • allow_abbrev - 如果缩写是无歧义的,则允许缩写长选项 (默认值:True
"""

2.添加参数

  给ArgumentParser添加程序参数是通过调用add_argument()方法完成的,通常这些调用指定ArgumentParser如何过去命令行参数并将其转化为对象。这些信息在parse_args()调用时存储和使用

parser.add_argument('integers',metavar='N', type=int, nargs='+', help='an integer for the accumulator')parser.add_argument('--sum',dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers(default: find the max)')

 当调用parser.parse_args()将返回一个具有integers和accumulate两个属性的对象。integers属性将是一个包含一个或者多个整数的列表,而accumulate 属性当命令行中指定了 --sum参数时,将是sum()函数,否则则是max()函数。

  add_argument()方法:

name or flags - Either a name or a list of option strings, e.g. foo or -f, --foo.
action - 将命令行参数和操作关联操作:store:默认操作,将参数存储parser.add_argument('--foo')parser.parse_args('--foo 1'.split())->Namespace(foo='1')store_const:这个操作将存储const关键字指定的值parser.add_argument('--foo', action='store_const', const=42)parser.parse_args(['--foo'])->Namespace(foo=42)store_true & store_false:这两个操作是store_const中的特殊操作,将创建默认的值:False/Trueparser.add_argument('--foo',action='store_true')parser.add_argument('--bar',action='store_false')parser.add_argument('--baz',action='store_false')parser.parse_args('--foo --bar'.split())->Namespace(foo=True,bar=False,baz=True)append:这个操作将命令行参数存储为一个集合parser.add_argument('--foo',action='append')parser.parse_args('--foo 1 --foo 2'.split())->Namespace(foo=['1','2,])append_const:这将存储一个列表,并将const关键字参数指定的值附加到该列表。(注意,const关键字参数默认为none。)当多个参数需要将常量存储到同一列表时,“append-const”操作通常很有用parser.add_argument('--str', dest='types', action='appent_const',const=str)parser.add_argument('--int', dest='types', action='append_const',const=int)parser.parse_args('--str --int'.split())->Namespace(types=[<class 'str'>,<class 'int'>])count:统计命令行参数中出现的次数parser.add_argument(‘--verbose','-v',action='count')parser.parse_args(['-vvv'])->Namespace(verbose=3).nargs - 将不同数量的命令行参数与单个操作关联.
     parser.add_argument('--foo',nargs=2)parser.add_argument('bar',nargs=1)parser.parse_args('c --foo a b'.split())->Namespace(bar=['c'],foo=['a','b'])
const - 某些action和nargs选项要求的常数值。
default - 如果命令行中没有出现该参数时的默认值。
type - 命令行参数应该被转换成的类型。
choices - 参数可允许的值的一个容器。
required - 该命令行选项是否可以省略(只针对可选参数)。
help - 参数的简短描述。
metavar - 参数在帮助信息中的名字。
dest - 给parse_args()返回的对象要添加的属性名称。

 

3.解析参数

  ArgumentParser通过parser_args()方法解析参数。它将检查命令行,把每个参数转换为适当的类型然后调用响应的操作。 大多数情况下,将常见一个Namespace对象 

parser.parse_args(['--sum','7','-1','42'])
->Namespace(accumulate=<built -in function sum>, integers=[7,-1,42])

  在脚本中parse_args()方法是不用带参数的,而是自动从sys.argv中确定命令行参数

其他博客:https://www.cnblogs.com/piperck/p/8446580.html

posted @ 2019-04-03 15:16 巡山小妖N 阅读(...) 评论(...) 编辑 收藏

python-argparse使用相关推荐

  1. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  2. Python argparse.ArgumentParser的add_argument()用法

    argsparse是python的命令行解析的标准模块,内置于python,不需要安装.argparse 将会从 sys.argv 解析出这些参数.本文主要介绍 Python的argparse和add ...

  3. Python argparse使用方法介绍

    官方文档地址 Python argparse使用方法介绍 1. argparse使用流程 # 1. 导入包 import argparse # 2. 实例化对象 parser = argparse.A ...

  4. python argparse库_Python的argparse库使用详解

    argparse是python标准库里面用来处理命令行参数的库 命令行参数分为位置参数和选项参数: 位置参数就是程序根据该参数出现的位置来确定的 如:[root@openstack_1 /]# ls ...

  5. python argparse举例说明

    目的:想从命令行通过命令来指定是否执行程序中的某个函数/模块 文章目录 例1: 方法1 方法二 更新 vars()在argparse中的使用 //memobio2015.u-strasbg.fr/co ...

  6. python argparse库_python标准库之argparse

    argparse的使用 argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并 ...

  7. python argparse中action 的可选参数store_true

    # test.py import argparseif __name__ == '__main__':parser = argparse.ArgumentParser()parser.add_argu ...

  8. Python argparse

    转自:https://blog.ixxoo.me/argparse.html 原文:Argparse Tutorial 译者:likebeta 本教程是对于Python标准库中推荐使用的命令行解析模块 ...

  9. Python Argparse模块

    argparse模块 在Python中,argparse模块是标准库中用来解析命令行参数的模块,用来替代已经过时的optparse模块.argparse模块能够根据程序中的定义从sys.argv中解析 ...

  10. Python argparse模块基本用法

    argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数. import argparsedef main():parser = argparse.ArgumentPars ...

最新文章

  1. 【Java 线程的深入研究3】最简单实例说明wait、notify、notifyAll的使用方法
  2. PostgreSQL-PL/pgSQL
  3. CSS3基础知识(一)
  4. linux添加硬盘永久挂载,linux新增硬盘如何挂载
  5. vb6 串口同时读取写入数据怎么避免冲突_分布式场景下的数据复制究竟怎么做...
  6. 在windows的IDE中使用linux命令行
  7. mysql主从数据库服务器搭建
  8. 外架小横杆外露长度规范要求_外架小横杆外露长度
  9. python绘制柱状图和折线图_python绘制散点图,柱状图和折线图
  10. SwiftUI实战教程 第三章 土豆List
  11. java实现文件分割_java 实现文件分割
  12. 如何在命令行卸载mysql_如何彻底卸载MySQL
  13. PDF转PNG高清不失帧
  14. 解决基于html5video标签多个视频同时播放的问题
  15. 计算思维-卡内基梅隆大学计算机系主任周以真
  16. Rails 中 scope
  17. 首师大附中互测题:99999999海岛帝国后传:算法大会【D001】
  18. 【620】【信息管理基础】【信息政策与信息法律】
  19. 笼罩在孙子和《孙子兵法》身上的“N”个谜
  20. 27m3氨基酸发酵反应釜设计

热门文章

  1. PHP对抗web扫描器的脚本技巧
  2. mysql索引失效_MySQL索引失效的底层原理
  3. 使用t-sql语句修改表中的某些数据及数据类型。_Java面试——数据库知识点
  4. matlab正弦光栅,科学网—光栅-正弦,矩形 - 宗兆玉的博文
  5. opencsv : 解析CSV
  6. springboot mail插件/JavaMailSenderImpl 发邮件。163网易企业邮箱调用的坑。
  7. python 调用mysql_Python中直接在MySQL执行SQL命令
  8. linux怎样反向查找路径,Linux中find的用法
  9. Windows Nginx 反向代理 Microsoft SQL Server (MSSQL)
  10. docker安装flowable-ui