python命令行参数argparse模块基本用法详解

作者:啊哈彭 时间:2023-07-31 03:14:21 

argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数。

一、传入一个参数

import argparse

# 创建一个命令行参数解析器
parser = argparse.ArgumentParser(description='命令行中传入一个数字')
# 往解析器里面添加参数
parser.add_argument('integer', type=str, help='传入的数字')
# 得到命令行传入的参数
args = parser.parse_args()
print(args.integer)

二、传入多个参数

import argparse

# 创建一个命令行参数解析器
parser = argparse.ArgumentParser(description='命令行中传入一个数字')
# 往解析器里面添加参数
parser.add_argument('integer', type=str, nargs='+', help='传入的数字')
# 得到命令行传入的参数
args = parser.parse_args()
print(args.integer)  # 以列表形式返回
注:
- nargs='+': 传入一个或多个参数
- nargs='*': 传入零个或多个参数
- nargs='?': 传入零个或一个参数

三、改变数据类型

# 可通过更改type参数修改数据类型
parser.add_argument('integer', type=str, nargs='+', help='传入的数字')

四、可选参数(关键字参数)

注:参数前面加双横杠"- -"表示这个参数是可选参数,即在命令行中可以以键值得形式指定,顺序可以打乱。

import argparse

parser = argparse.ArgumentParser(description='姓名')
parser.add_argument('--family', type=str, help='姓')
parser.add_argument('--name', type=str, help='名')
args = parser.parse_args()
#打印姓名
print(args.family+args.name)

命令行命令:
python XXX.py --family 张 --name 三 or
python XXX.py --name 三 --family 张

五、参数默认值

通过default指定默认值。

parser.add_argument('--family', default='李', type=str, help='姓')
parser.add_argument('--name', type=str, help='名')

六、参数解析

parse_args()只能解析已知参数,parse_known_args()兼容未知参数并返回。

import argparse

parser = argparse.ArgumentParser(description='姓名')
parser.add_argument('--family', type=str,help='姓')
parser.add_argument('--name', type=str,help='名')

args = parser.parse_args()
# args, dynamic_args = parser.parse_known_args()

print(args)
print(dynamic_args)

命令行示例:
python XXX.py --family 张 --name 三 --test hello
结果:
args = parser.parse_args() # 报错, error: unrecognized arguments: --test 5
args, dynamic_args = parser.parse_known_args() # 成功返回

python命令行参数argparse模块基本用法详解

补充:python中的argparse基本用法

1、argparse是一个python模块,用途是:命令行选项、参数和子命令的解释。

2、使用步骤:

  • 导入argparse模块,并创建解释器

  • 添加所需参数

  • 解析参数

3、用法示例:

import argparse

# 1.创建解释器
parser = argparse.ArgumentParser(description="可写可不写,只是在命令行参数出现错误的时候,随着错误信息打印出来。")
# 2.添加需要的参数
parser.add_argument('-gf', '--girlfriend', choices=['jingjing', 'lihuan'])
# 参数解释
# -gf 代表短选项,在命令行输入-gf和--girlfriend的效果是一样的,作用是简化参数输入
#--girlfriend 代表完整的参数名称,可以尽量做到让人见名知意,需要注意的是如果想通过解析后的参数取出该值,必须使用带--的名称
# choices 代表输入参数的只能是这个choices里面的内容,其他内容则会保错
parser.add_argument('--house', type=int, default=0)
# 参数解释
# --house 代表参数名称
# type  代表输入的参数类型,从命令行输入的参数,默认是字符串类型
# default 代表如果该参数不输入,则会默认使用该值
parser.add_argument('food')
# 参数解释
# 该种方式则要求必须输入该参数
# 输入该参数不需要指定参数名称,指定反而报错,解释器会自动将输入的参数赋值给food

# 3.进行参数解析
args = parser.parse_args()
print('------args---------',args)
print('-------gf-------', args.girlfriend)

4、命令行运行方式
假设上述文件的名字是gf.py
在命令行运行时,则有以下几种情况:

  • python gf.py potato ,这种方式会将potato赋值给food

  • python gf.py -gf jingjing tomato,该种方式会将jingjing赋值给girlfriend,tomato赋值给food

  • python gf.py --house 2 chicken,该种方式会将house赋值为2,food赋值为chicken

下面为以上三种情况的具体运行时截图:
a.

python命令行参数argparse模块基本用法详解

b.

python命令行参数argparse模块基本用法详解

c.

python命令行参数argparse模块基本用法详解

学会了以上的几种方式,argparse模块的基本用法也就掌握了。

来源:https://www.cnblogs.com/pingwen/p/17071860.html

标签:python,命令行,参数,argparse
0
投稿

猜你喜欢

  • 小议JavaScript泛式框架架构的逻辑形式

    2010-07-02 12:55:00
  • 记一次成功的sql注入入侵检测附带sql性能优化

    2011-09-30 11:29:39
  • Python装饰器(decorator)定义与用法详解

    2022-07-21 03:11:25
  • Python 简单计算要求形状面积的实例

    2022-10-19 09:02:33
  • 同时安装sql2000和sql2005,经验点滴

    2008-03-04 17:56:00
  • 浅谈Go语言中字符串和数组

    2024-04-25 15:14:36
  • Python 抓取动态网页内容方案详解

    2022-05-19 02:09:29
  • Ubuntu16.04安装python3.6.5步骤详解

    2023-01-01 08:06:58
  • asp的日期转换星座函数

    2010-06-09 21:05:00
  • python读写数据读写csv文件(pandas用法)

    2021-06-15 15:28:03
  • BootStrap 表单控件之单选按钮水平排列

    2024-05-11 09:43:18
  • 实例探究Python以并发方式编写高性能端口扫描器的方法

    2022-01-12 14:38:52
  • 用python实现名片管理系统

    2022-03-27 09:34:33
  • Python常用的json标准库

    2022-02-26 10:37:52
  • Python selenium实现断言3种方法解析

    2023-06-06 06:08:53
  • mysqldumpslow用法示例(慢查询)

    2024-01-15 22:42:03
  • python中实现延时回调普通函数示例代码

    2023-10-03 02:17:04
  • Python作用域用法实例详解

    2022-12-10 15:44:42
  • 原生js实现移动小球(碰撞检测)

    2024-04-19 09:56:01
  • JupyterNotebook设置Python环境的方法步骤

    2023-01-15 12:22:14
  • asp之家 网络编程 m.aspxhome.com