python命令行参数argparse模块基本用法详解
作者:啊哈彭 发布时间:2023-07-31 03:14:21
标签:python,命令行,参数,argparse
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基本用法
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.
b.
c.
学会了以上的几种方式,argparse模块的基本用法也就掌握了。
来源:https://www.cnblogs.com/pingwen/p/17071860.html
0
投稿
猜你喜欢
- 学习Django框架时,创建一个引擎及索引时报错,具体报错如下:执行命令:python3 manage.py rebuild_index报如
- 关于本文:本着互联网共享主义精神,特写此文献给建站新手,授人以鱼,不如授人以渔,本文所讲的只是方法和原理,希望大家看完此文,能够从中得到些帮
- 1.获取function形参个数functionName.length2.较适用的运算符delete:删除以前定义的对象属性或方法的引用vo
- 测试:IE6、IE7、FF3.014突发奇想的效果,主要突出构思,效果还比较粗糙,好好创意一下,应该可以引申出一些比较有新意的图片切换效果。
- 好久没有写ASP代码了,今天在做一个简单的留言本时,出现了一下错误: Microsoft Office Access Database En
- 大家经常在网上登陆的时候经常会看到让你输入验证码,有的是文字的,有的呢是图片,比如chinaren.com校友录中留言的时候,我们就会看到数
- 前言在 Go 单元测试这个系列的第二部分 数据库的Mock测试 中我们介绍了用 go-sqlmock 给数据库的 CRUD 操作做Mock
- 昨天去面试,百度题果然不一样,笔试我就蒙了,现在能记住两道题,笔试:1、title和alt 区别2、三列布局 左边裂固定宽度左对齐,右边列固
- 问:把数据从MySQL迁移到Oracle需要注意些什么?答:以下是MySQL迁到Oracle需要掌握的注意事项,希望对你有所帮助。1.自动增
- 看到很多站长工具网,都提供了通过域名获取网站IP的方法。自己也想做一个,网上查了不少代码。有说用WSHSHELL,也有说用ASPPING组件
- 在默认情况下,Access 2000/2002数据库是以“共享”的方式打开的,这样可以保证多人能够同时使用同一个数据库。不过,在共享方式打开
- 无法打开用户默认数据库,登录失败,这也是SQL Server使用者熟悉的问题之一。在使用企业管理器、查询分析器、各类工具和应用软件的时候,只
- Dreamweaver MX 2004 试用试用心得:安装:选择工作界面(我选了默认的设计模式)初次启动,选择30天试用如果你也看到这个警告
- 在应用程序的开发中,有些输入信息是动态的,比如我们要注册一个员工的工作经历,比如下图如果做成死的,只能填写三个,如果是四个呢?或者更多呢,那
- 本文主要介绍如何用Python设计一个经典小游戏:猜大小。在这个游戏中,将用到前面我介绍过的所有内容:变量的使用、参数传递、函数设计、条件控
- 将来电脑的大显示屏会越来越普及,并且从现在web设计作品中能观察到两点趋势:页面布局普遍更宽;页面内容文字普遍更大。使用1280×800和1
- 当需要制作转动鼠标滚轮放大页面字体这样的交互效果时,会用到 Mousewheel 事件。其实在大多数浏览器(IE6, IE7, IE8, O
- 本文实例讲解了php表单验证的实现方法,分享给大家供大家参考,具体内容如下1.PHP表单处理welcome.html<html>
- 在OOCSS中怎么定义“对象”?对象类似JAVA中的类,保持着OO的特征。一个CSS对象由4部分组成:可能是一个或多个DOM节点的HTML由
- 这是fenye.asp具体代码:以下是引用片段:<%Const maxPagesize=1000 '设置分