python3常用库之解析命令行参数argparse

news/2024/10/9 16:13:16/文章来源:https://www.cnblogs.com/caroline2016/p/18454505

在命令行程序中需要获取命令行参数可以使用sys库和argparse库。sys库可用于处理简单的命令行参数,argparse库可用于处理复杂的命令行参数。

# argparse 解析命令行参数import argparse, sysdef main():# 定义一个ArgumentParser实例:参数分别为程序名、描述、说明信息parser = argparse.ArgumentParser(prog="test", description="test", epilog="version 1.01")# 定义位置参数,help指定帮助信息:parser.add_argument("path", help="路径")# 定义关键字参数:parser.add_argument("--host", default="localhost")# type指定参数必须为int类型,default指定参数可缺省,缺省时值为3306:parser.add_argument("--port", default="3306", type=int)# 此参数允许用户输入简写,required指定参数必需输入:parser.add_argument("-u", "--user", required=True)parser.add_argument("-p", "--password", required=True)# nargs指定接收的参数个数parser.add_argument("--lt", type=str, nargs=3)# choices指定参数值必需为选项中的一个parser.add_argument("--ch", type=str, choices=["cp", "de"])# action='store_true'指定参数不跟参数值,出现表示Trueparser.add_argument("--st", action="store_true", required=False)# 解析参数:如果参数有问题,则它打印出错误信息后,结束进程;如果参数是-h,则它打印帮助信息后,结束进程。args = parser.parse_args()# 打印参数:print("argparse parsed args:", args)if __name__ == "__main__":print("sys argv:", sys.argv)main()

py test.py 

sys argv: ['learn-argparse.py']
usage: test [-h] [--host HOST] [--port PORT] -u USER -p PASSWORD [--lt LT LT LT] [--ch {cp,de}] [--st] path
test: error: the following arguments are required: path, -u/--user, -p/--password 

 

py test.py -u root -p hello --lt a b c --ch cp /path 

sys argv: ['learn-argparse.py', '-u', 'root', '-p', 'hello', '--lt', 'a', 'b', 'c', '--ch', 'cp', '/path']
argparse parsed args: Namespace(path='/path', host='localhost', port=3306, user='root', password='hello', lt=['a', 'b', 'c'], ch='cp', st=False)

 

py test.py -u root -p hello --lt a b c --ch cp --st /path 

sys argv: ['learn-argparse.py', '-u', 'root', '-p', 'hello', '--lt', 'a', 'b', 'c', '--ch', 'cp', '--st', '/path']
argparse parsed args: Namespace(path='/path', host='localhost', port=3306, user='root', password='hello', lt=['a', 'b', 'c'], ch='cp', st=True)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/810595.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp-开发APP的坑点,文件上传,选择方面

1.文件上传 uni.uploadFile 在H5端可以上传成功,在APP无法上传成功, 1.先检查url:必须是全路径,之前是 url: /api/test 所以上传不上去,2,manifest配置权限<uses-feature android:name="android.hardware.camera"/> <uses-feature android:name="an…

iPhone 16 Pro上百款充电头充电功率测试

一、苹果原装充电器测试截图: 以下所有测试均为“充电头网实验室”评测,且测试手机为最新的iPhone 16 Pro手机,充电线均为iPhone 16 Pro 最新的原装编织充电线,所以只有充电头是不同的,排除了其他因素的干扰。视频网站来自于B站: https://www.bilibili.com/video/BV1XixL…

如何用AI快速开发一个小程序?

从idea到上线,只花了2个小时,整个流程中,除了手动调整样式的数值,没有写一行代码,全部由AI能力,结合prompt帮助我完成。ChatGPT这个轰动全球的产品自问世以来,已经过了将近2年的时间,各行各业的精英们如火如荼的将AI能力应用到自己生产的产品中来。为分担人类的部分工作…

装酷就来这,秒变黑客精英的6个网站

有网友问:有没有装黑客,炫酷的网站? 回答:当然有。当黑客,门槛太高;装黑客,都是1秒钟的事情。下面介绍几个: 第一个:hackertyper 网址:https://hackertyper.net/ 随意输入文字,屏幕出现整齐的代码 这个是装酷首选,速度快,网页干净! 第二个:GEEKtyper 网址: ht…

webapi发布---问题解决

一. 127.0.0.1是回路地址,来检验本机TCP/IP协议栈,实际使用过程中服务端不在本机,是外部地址,要用IP地址测试。 外部用户采用IP+端口号访问,如下图浏览器访问不了,400错误。解决方案: 因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改…

virtualbox虚拟机的安装及xshell的连接

1.新建 填入虚拟机名字 虚拟机光盘为外部下载:https://openanolis.cn 点击下载点击第二个x86_64其他默认 2.设置 设置网络网卡 网卡1 网卡2 3.启动安装 一律默认 4.连接网络5.打开终端输入ip addr获取网络ip 6.打开xshell将ip地址输入到主机7.输入虚拟机用户名和密码即连接成功…

virtualbox虚拟机的安装

1.新建 填入虚拟机名字 虚拟机光盘为外部下载:https://openanolis.cn 点击下载点击第二个x86_64其他默认 2.设置 设置网络网卡 网卡1 网卡2 3.启动安装 一律默认 4.连接网络5.打开终端输入ip addr获取网络ip 6.打开xshell将ip地址输入到主机7.输入虚拟机用户名和密码即连接成功…

webapi测试例子

1. 修改WebApiConfig.cs中路由路径问题:webapi的默认路由并不需要指定action的名称(WebApi的默认路由是通过http的方法get/post/put/delete去匹配对应的action),但默认路由模板无法满足针对一种资源一种请求方式的多种操作。解决:打开App_Start文件夹下,WebApiConfig.cs …

LED显示驱动/高亮数显屏驱动芯片VK16K33A 采用SOP28封装形式,可支持16SEGx8GRID的点阵LED显示面板

VK16K33A是一种带按键扫描接口的数码管或点阵LED驱动控制专用芯片,邱婷:188-2366-8825内部集成有数据 锁存器、键盘扫描、LED 驱动模块等电路。数据通过I2C通讯接口与MCU通信。SEG脚接LED阳 极,GRID脚接LED阴极,可支持16SEGx8GRID的点阵LED显示面板。最大支持133的按键。内…

PostgreSQL E转义字符

背景:多行数据作为select的where查询条件,数据库里直接找能找到,但select查询不到 数据AAA BBB CCC select ratmplid from certificates where privka = AAA BBB CCC ; 查询不到数据,修改如下 select ratmplid from certificates where privka = EAAA\nBBB\nCCC\n; 也可以借…

打通前后端流程,案例解读华为云开源低代码引擎解决方案

华为云在前端领域提供了DevUI Suites的场景级解决方案与打通前端与服务端的TinyEngine低码引擎,帮助开发者开发专业、设计统一的前端场景。本文分享自华为云社区《使用场景级前端解决方案及低代码引擎,助力开发者生产效能提升》,来源:《华为云DTSE》第五期开源专刊 当前前端…