首页 > 编程语言 >python-argparse

python-argparse

时间:2023-04-07 09:11:06浏览次数:31  
标签:argparse python parser argument -- add 参数

argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数。

使用argparse 配置命令行参数时,需要三步:

  • 创建命令行解析器对象 argparse.ArgumentParser() 对象
  • 给解析器添加命令行参数 add_argument() 方法添加参数
  • 解析命令行的参数 parse_args() 解析添加的参数

案例

创建一个 Demo.py 文件

import argparse
 
# 1. 定义命令行解析器对象
parser = argparse.ArgumentParser(description='Demo of argparse')
 
# 2. 添加命令行参数
parser.add_argument('--epochs', type=int, default=30)
parser.add_argument('--batch', type=int, default=4)
 
# 3. 从命令行中结构化解析参数
args = parser.parse_args()
print(args)
epochs = args.epochs
batch = args.batch
print('show {}  {}'.format(epochs, batch))

在命令行执行如下命令

$ python Demo.py

Namespace(batch=4, epochs=30)
show 30  4

argparse.ArgumentParser()

parser = argparse.ArgumentParser(prog=name,description='Process some integers.')

一般只需要一个参数prog  l

argparse.add_argument()

ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
- name or flags  选项字符串的名字或者列表,例如 foo 或者 -f, --foo。
- action  		 命令行遇到参数时的动作,默认值是 store_true。
  --store           当前的参数值(默认动作)
  --extend			存储一个列表,并将每个参数值加入到列表中。
  --store_const     参数指定的值
  --append          将遇到的值存储成列表,也就是如果参数重复则会保存多个值;
  --append_const    将参数规范中定义的一个值保存到一个列表;
  --count        存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析;

- nargs 		应该读取的命令行参数个数,可以是具体的数字,或者是?号,当不指定值时对于 Positional argument 使用 default,对于 Optional argument 使用 const;或者是 * 号,表示 0 或多个参数;或者是 + 号表示 1 或多个参数。
- const - action 和 nargs 所需要的常量值。
- default 		不指定参数时的默认值。
- type 			命令行参数应该被转换成的类型。
- choices 		参数可允许的值的一个容器。
- required 		可选参数是否可以省略 (仅针对可选参数)。
- help 			参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息.
- metavar 		在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称.
- dest 			解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线.

参数选项

  • name or flags: 参数名
parser.add_argument('bar')  # 添加位置参数
parser.add_argument('-f', '--foo')  # 添加可选参数
  • store_true 值存为 True 或 False
parser = argparse.ArgumentParser()
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(bar=False, baz=True, foo=True)

案例

import argparse
 
parser = argparse.ArgumentParser(prog='程序名字', usage='用来测试的python程序', description="帮助文档之前显示的文本", epilog="↓在帮助文档之后显示的文本",
                    add_help=False)
parser.add_argument('-h', '--帮助', action='help', help='查看帮助信息')
parser.add_argument('-a', '--全部', help='开启全部测试(默认开启)', action='store_true')
parser.add_argument('-m', '--模块', help='使用绕过的模块', action='store_const', const=[1, 2, 3, 4])
parser.add_argument('-u', '--链接', help='目标的URL地址,比如http://127.0.0.1/',action='store_false')
parser.add_argument('-t', '--目标', help='具体要扫描的目标,比如/index(默认:/)', action='store_false',dest="目标")
parser.add_argument('-v', '--版本', action='version', help='查看当前版本', version='%(prog)s 0.1 版本')
args=parser.parse_args()
$python demo1.py -h
usage: 用来测试的python程序

帮助文档之前显示的文本

optional arguments:
  -h, --帮助  查看帮助信息
  -a, --全部  开启全部测试(默认开启)
  -m, --模块  使用绕过的模块
  -u, --链接  目标的URL地址,比如http://127.0.0.1/
  -t, --目标  具体要扫描的目标,比如/index(默认:/)
  -v, --版本  查看当前版本

标签:argparse,python,parser,argument,--,add,参数
From: https://www.cnblogs.com/tian777/p/17294881.html

相关文章

  • python_PIL图片拼接,符合需求但不完美!!
    仅能符合需求的图片拼接工具。。。使用第三方包为:importtkinterastkfromtkinterimportEntry,ButtonfromtkinterimportfiledialogfromPILimportImage工具的样子:图片拼接示例首先选择多个需要拼接的图片,然后回自动调整图片的宽度比,纵向拼接 拼接后就是这个样子......
  • Python 异步: 常见问题 Part_1(23)
    动动发财的小手,点个赞吧!本节回答开发人员在Python中使用asyncio时提出的常见问题。1.如何停止任务?我们可以通过asyncio.Task对象上的cancel()方法取消任务。如果任务被取消,cancel()方法返回True,否则返回False。...#cancelthetaskwas_cancelled=task.cancel......
  • 每日总结2023/4/6(python实现分型图形设计)
    importrandomimportturtleturtle.speed(100)defke_line(line_,n):ifn==0:turtle.fd(line_)else:line_len=line_//3foriin[0,60,-120,60]:turtle.left(i)ke_line(line_len,n-1)#原始线......
  • Python + edge-tts:一行代码,让你的文本轻松变成语音!
    大家好,我是树先生!今天给大家介绍一个Python库edge-tts,可以在本地轻松将文本转换成语音,非常方便,并且完全免费!先来听一下效果:https://www.bilibili.com/audio/au3843189?type=1怎么样?是不是很熟悉,影视解说中常用开头:这个女人叫小美。。。 edge-tts介绍edge-tts是一个Py......
  • Python ORM Pony SQLite数据库 常用操作
    Pony是一个高级的对象关系映射器ORM框架。Pony它能够使用Python生成器表达式和lambdas向数据库编写查询。Pony分析表达式的抽象语法树,并将其转换为SQL查询。支持SQLite,MySQL,PostgreSQL和Oracle等数据库,本文主要介绍PythonORMPony中SQLite数据库常用操作,及数据增加、删除、修......
  • Python生成随机验证码
    pipinstallpillow 实现代码importrandomfromPILimportImage,ImageDraw,ImageFont,ImageFilterdefcheck_code(width=120,height=30,char_length=5,font_file='kumo.ttf',font_size=28):code=[]img=Image.new(mode='RGB',si......
  • 02:python-函数
     正文#1:调用内置函数#调用绝对值函数abs()intAbs=abs(-20)print(intAbs)#调用最大函数intMax=max(1,2,-1,10)print(intMax)#数据类型转换print(int('124'))#字符串转intprint(int(12.34))#float转intprint(str(12.34))#float转字符串......
  • Python小练习:权重初始化(Weight Initialization)
    Python小练习:权重初始化(WeightInitialization)作者:凯鲁嘎吉-博客园 http://www.cnblogs.com/kailugaji/调用Pytorch中的torch.nn.init.xxx实现对模型权重与偏置初始化。1.weight_init_test.py1#-*-coding:utf-8-*-2#Author:凯鲁嘎吉CoralGajic3#https://w......
  • 【转】python pip 换源阿里云
    via:pythonpip换源阿里云-知乎(zhihu.com)pip换源阿里云只需要在cmd输入一条命令:pipconfigsetglobal.index-urlhttps://mirrors.aliyun.com/pypi/simple ......
  • opencv-python 4.13. 霍夫线变换
    前言霍夫变换是一种特征检测(featureextraction),被广泛应用在图像分析(imageanalysis)、计算机视觉(computervision)以及数位影像处理(digitalimageprocessing)。霍夫变换(HoughTransform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。该过程......