Python包argparse模块常用方法

作者:cuntou0906 时间:2023-04-03 13:30:58 

argparse介绍

  argparse包用于解释命令行参数。这里给出几个常用的方法。


# 创建解析器对象
# @para: description:描述信息
Arg = ArgumentParser(description='An example for Python package argparse~')

# 添加参数
# @para: 后面举例子再细说
Arg.add_argument()

# 解析参数
# @return: 返回的arg是一个对象,里面的属性和属性值来自命令行
arg = Arg.parse_args()

# 创建互斥组
# @description:互斥组内的参数不能同时出现
Arg.add_mutually_exclusive_group()

argparse实例

基本使用


import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
arg = Arg.parse_args()

不添加任何参数,cmd运行结果:

Python包argparse模块常用方法

默认可以使用-h或者–help查看参数列表。因为没有添加任何参数,因此,这里只有一个-h。可以看到description的描述信息也可以在-h下打印出来。

添加参数


import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Arg.add_argument('a')
arg = Arg.parse_args()
print("arg 的内的参数{}".format(arg.a))
args = vars(arg)
print("arg 的内的参数{}".format(args['a']))

Python包argparse模块常用方法

添加参数后,需要在运行后面带上参数,否则报错。

添加可选参数

前面添加的参数,一定要传入参数值。


import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Arg.add_argument('-a','-all',help='add all para!')
arg = Arg.parse_args()
print("arg 的内的参数{}".format(arg.a))
args = vars(arg)
print("arg 的内的参数{}".format(args['a']))

只需在参数前加上-(用于一个字母,例如-h)或者--(用于多个字母,例如--help),即可选择是否需要传入参数。

Python包argparse模块常用方法

但是如果指定了参数,后面一定要跟上参数值,否则会报错。例如:

Python包argparse模块常用方法

在添加参数的时候,加上action="store_true"


import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Arg.add_argument('-a','-all',help='add all para!',action="store_true")
arg = Arg.parse_args()
print("arg 的内的参数{}".format(arg.a))
args = vars(arg)
print("arg 的内的参数{}".format(args['a']))

Python包argparse模块常用方法

当我们带上-a运行,在代码里得到的a值为True,不带则为False。这个是不是和-h类似,当我们带上-h,里面有个if判断,就把相关信息print出来了。

固定类型type


import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Arg.add_argument('-a','-all',type = int ,help='add all para!',action="store_true")
arg = Arg.parse_args()
print("arg 的内的参数{}".format(arg.a))
args = vars(arg)
print("arg 的内的参数{}".format(args['a']))

Python包argparse模块常用方法

可选值和默认值


import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Arg.add_argument('-a','-all',type = int ,help='add all para!',choices=[0,1,2,3],default='3')
arg = Arg.parse_args()
print("arg 的内的参数{}".format(arg.a))
args = vars(arg)
print("arg 的内的参数{}".format(args['a']))

Python包argparse模块常用方法

互斥参数


import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Gro = Arg.add_mutually_exclusive_group()
Gro.add_argument('-a','-all',help='add all para!')
Gro.add_argument('-b','-ball',help='add ball para!')

arg = Arg.parse_args()
args = vars(arg)
if args.get('a',None):
   print("arg 的内的参数b:{}".format(args['a']))
if args.get('b', None):
   print("arg 的内的参数b:{}".format(args['b']))

Python包argparse模块常用方法

可以看出,在互斥组内,参数不可以同时出现,仅可出现一个或者都不出现。所以在互斥组内添加的参数必须是可选参数,也就是以-或者--开头的。 

来源:https://blog.csdn.net/weixin_44231148/article/details/117527260

标签:Python,argparse,使用
0
投稿

猜你喜欢

  • python爬虫获取新浪新闻教学

    2021-10-13 11:15:41
  • Golang多线程爬虫高效抓取大量数据的利器

    2024-02-20 06:24:44
  • Clion ROS开发环境设置技巧

    2023-11-01 02:36:32
  • linux 下python多线程递归复制文件夹及文件夹中的文件

    2021-06-28 03:27:44
  • http通过StreamingHttpResponse完成连续的数据传输长链接方式

    2023-06-04 03:33:45
  • JAVA正则表达式 Pattern和Matcher

    2023-07-01 19:13:53
  • 详解在node.js中require方法的加载规则

    2024-05-08 09:36:10
  • python中的Pytorch建模流程汇总

    2022-04-26 19:02:14
  • 详解python中递归函数

    2022-04-17 19:40:55
  • 关于matplotlib-legend 位置属性 loc 使用说明

    2021-12-19 06:48:25
  • pandas.DataFrame中提取特定类型dtype的列

    2021-06-13 06:04:25
  • win2003 Server配置SQL Server 2005远程连接的方法

    2024-01-17 10:09:06
  • python属于跨平台语言码

    2023-12-23 02:10:32
  • 解决jupyter加载文件失败的问题

    2022-07-21 19:17:05
  • js删除所有的cookie的代码

    2024-05-02 17:29:59
  • Python调用高德API实现批量地址转经纬度并写入表格的功能

    2023-12-26 03:22:20
  • python装饰器原理源码示例分析

    2022-03-25 18:31:04
  • Python:Numpy 求平均向量的实例

    2021-09-25 08:01:15
  • 关于MySQL中隐藏空间的问题

    2009-07-30 08:15:00
  • 基于python+opencv调用电脑摄像头实现实时人脸眼睛以及微笑识别

    2023-07-08 23:31:14
  • asp之家 网络编程 m.aspxhome.com