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/True
parser.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','','-1',''])
->Namespace(accumulate=<built -in function sum>, integers=[7,-1,42])
在脚本中parse_args()方法是不用带参数的,而是自动从sys.argv中确定命令行参数
其他博客:https://www.cnblogs.com/piperck/p/8446580.html
python-argparse使用的更多相关文章
- python argparse用法总结
转:python argparse用法总结 1. argparse介绍 argparse是python的一个命令行解析包,非常适合用来编写可读性非常好的程序. 2. 基本用法 prog.py是我在li ...
- Python argparse 模块
Python argparse 模块 test.py: import argparse argparser = argparse.ArgumentParser(add_help=False) argp ...
- python argparse sys.argv
python argparse sys.argv class WeiLearningArgumentParser(argparse.ArgumentParser): def __init__(self ...
- python - argparse 模块学习
python - argparse 模块学习 设置一个解析器 使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数.那么当你的程序运行时,该解析器就可以用于处理命令行参数. 解 ...
- Python argparse 处理命令行小结
Python argparse 处理命令行小结 1. 关于argparse是python的一个命令行解析包,主要用于处理命令行参数 2. 基本用法test.py是测试文件,其内容如下: import ...
- python argparse模块解析命令行选项简单使用
argparse模块的解析命令行选项简单使用 util.py #!/usr/bin/env python # coding=utf-8 import argparse parser = argpars ...
- Python argparse
http://songpengfei.iteye.com/blog/1440158 https://docs.python.org/2/library/argparse.html http://sta ...
- Python argparse模块实现模拟 linux 的ls命令
python 模拟linux的 ls 命令 sample: python custom_ls.py -alh c:/ 选项: -a ,--all 显示所有文件,包括'.'开头的隐藏文件 -l 列表显 ...
- Python argparse用法
import argparse import sys parser = argparse.ArgumentParser(description='this is for test.') parser. ...
- Python Argparse模块
argparse模块 在Python中,argparse模块是标准库中用来解析命令行参数的模块,用来替代已经过时的optparse模块.argparse模块能够根据程序中的定义从sys.argv中解析 ...
随机推荐
- rsync用法详细解释
提要 熟悉 rsync 的功能及其特点 掌握 rsync 语法及常用选项的功能 掌握 rsync 命令的三种基本使用方法 掌握如何筛选 rsync 的传输目标 掌握使用 rsync 进行镜像和增量备份 ...
- Python 字符编码及其文件操作
本章节内容导航: 1.字符编码:人识别的语言与机器机器识别的语言转化的媒介. 2.字符与字节:字符占多少个字节,字符串转化 3.文件操作:操作硬盘中的一块区域:读写操作 注:浅拷贝与深拷贝 用法: d ...
- 【Spring】手写Spring MVC
Spring MVC原理 Spring的MVC框架主要由DispatcherServlet.处理器映射.处理器(控制器).视图解析器.视图组成. 完整的Spring MVC处理 流程如下: Sprin ...
- Time travel HDU - 4418(高斯消元)
Agent K is one of the greatest agents in a secret organization called Men in Black. Once he needs to ...
- Vue(小案例_vue+axios仿手机app)_图文列表实现
一.前言 1.导航滑动实现 2.渲染列表信息时让一开始加载的时候就请求数据 3.根据路由的改变,加载图文的改变(实现用户访问网站时可能执行的三个操作) 二.主要内容 1.导航滑动实现: (1)演示 ...
- codeforces-1138 (div2)
想法题是硬伤,面对卡题和卡bug的情况应对能力太差 A.求两个前缀和以及两个后缀和,相邻最小值的最大值. #include<iostream> using namespace std; ; ...
- Hadoop记录-退役
一.datanode添加新节点 1.在dfs.include文件中包含新节点名称,该文件在名称节点的本地目录下 [白名单] [/app/hadoop/etc/hadoop/dfs.include] 2 ...
- 迅为iTOP-4418开发板-Android5.1系统编译补充
基于iTOP-4418开发板-Android5.1系统编译补充 5.6 编译-20181225 日期之后的源码 本文档补充介绍 4418 编译网盘目录 “J:\局域网共享_阮\iTOP4418 开发板 ...
- Educational Codeforces Round 33 (Rated for Div. 2) E. Counting Arrays
题目链接 题意:给你两个数x,yx,yx,y,让你构造一些长为yyy的数列,让这个数列的累乘为xxx,输出方案数. 思路:考虑对xxx进行质因数分解,设某个质因子PiP_iPi的的幂为kkk,则这个 ...
- Codeforces Round #449 (Div. 2) D. Ithea Plays With Chtholly
题目链接 交互题. 题意:给你三个数n,m,k.让你完成至多m次互动,每次给你一个q,让你从n个位置选一个位置放这个数,覆盖已经放过的数.让你再m次使得n个位置的数不递减,达到直接退出. 解法:暴力, ...