Python基于argparse与ConfigParser库进行入参解析与ini parser
作者:smilingsusu 发布时间:2022-09-16 01:56:39
标签:python,argparse,ConfigParser,入参解析,ini,parser
一.入参解析库 argparse
有时候写Python脚本,需要处理入参[-h][-v][-F]...等情况,如果自己来解析的话,会花费很多时间,而且也容易出问题,好在Python有现成的lib可以使用,就是argparse了,下面我们看看如何使用它。
import argparse
def get_version():
return "0.0.1"
def cmd_handler():
args = argparse.ArgumentParser()
args.add_argument("-v", "--version", action='version', version=get_version())
args.add_argument("-o", "--output_name", type=str, dest="output_filename", help="Output File Name")
args.add_argument("-S", "--SHA_Algorithm", type = str, dest = "ENABLE_SHA384_AES256", help = "SHA Algorithm. (SHA256 or SHA384, default is SHA256)", default='SHA256', choices=['SHA256', 'SHA384'])
args.add_argument("-X", "--Old_Argv", type = str, dest = "OLD_ARGV", nargs='+', help = "Use old argv config")
args = args.parse_args()
return args
if __name__ == "__main__":
args = cmd_handler()
print args.output_filename
print args.OLD_ARGV
1. -h是argparse帮我们加的,所以只需要写好help的信息就可以了,-v有时候会需要调用函数来打印,只需要返回字符串就可以了。
2. add_argument 表示增加需要解释的参数,-o是简写,一般用一个-; --output_name是全称,dest表示把入参给output_filename,后面就可以用args.output_filename来获取入参了。
3. args.parse_args会解析入参,然后返回一个容器,后面就可以访问了。
二. config解析库
很多时候,对于自动化脚本,用入参来配置,会比较麻烦,这意味着要经常改code,改入参。而使用ini来配置程序,会极大方便控制程序的执行,Python中有ConfigParser库可以使用。
import ConfigParser
ini_config = None
def handler_iniargs(ini_file)
global ini_config
ini_config = ConfigParser.ConfigParser()
ini_config.read(ini_file)
output_name = ini_config.get("OUTPUT_CONFIG", "filename")
is_secure_mode = ini_config.getboolean("SECURE_CONFIG", "secure")
if __name__ == "__main__":
handler_iniargs(./config.ini)
print ini_config
Inifile示例:
[OUTPUT_CONFIG]
filename=myfile.txt
[SECURE_CONFIG]
secure=True
来源:https://www.cnblogs.com/smilingsusu/p/14338175.html
0
投稿
猜你喜欢
- 从容器、可迭代对象谈起所有的容器都是可迭代的(iterable),迭代器提供了一个next方法。iter()返回一个迭代器,通过next()
- 一、功能这里的需求是,判断摄像头有没有被物体遮挡。这里只考虑用手遮挡---->判断黑色颜色的范围。二、使用OpenCV的Mat格式图片
- 这段代码的效果具体是输入标题和内容,点击发布把消息发布出去,并使最新的消息始终在内容的最上面,代码为:<!DOCTYPE html&g
- 如果你只使用一个更新日志,你只须清空日志文件,然后移走旧的更新日志文件到一个备份中,然后启用新的更新日志。用下列方法可以强制服务器启用新的更
- 完整代码如下:import requestsfrom lxml import etreeimport randomimport osfrom
- 本文实例讲述了Vue 实现从小到大的横向滑动效果。分享给大家供大家参考,具体如下:最近项目中遇到一个需求,需要实现横向滑动,并且在滑动过程中
- <asp:ImageButton ID="BtnMailaddress" runat="server&q
- DJANGO_SETTINGS_MODULE使用Django时要通知Django当前使用的是哪个配置文件。可以改变环境变量 DJANGO_S
- Pycharm打开大文件的时候出现这个错误,根据提示以及百度知道,是因为IDEA对能关联的文件大小做了限制,主要是为了保护内存,默认值为25
- Typora是什么?Typora是一款支持实时预览的Markdown文本编辑器。支持即时渲染技术,这也是与其他Markdown编辑器最显著的
- 如何用眼睛来控制鼠标?一种基于单一前向视角的机器学习眼睛姿态估计方法。在此项目中,每次单击鼠标时,我们都会编写代码来裁剪你们的眼睛图像。使用
- 如下所示:from pymongo import MongoClient#建立和数据库系统的连接,指定host及port参数client =
- 目的是想通过给定一个ID,取出所有的子ID,包括子ID的子ID。一开始写成FUNCTION,因为FUNCTION调用方便,但是报错:ERRO
- 分享人:月漓作为交互设计师,你是否在一个项目中花费大量的时间来沟通、修改、明确需求?其实这些前期工作(设计原型前)是我们和PD、运营、开发之
- 我有一张这样的产品零件表:部分part_id part_type product_id-------------
- vscode安装python库1.已经在vscode中装了python并配置好python运行环境。检查是否正确配置好运行环境,按Windo
- 实现网页的键盘输入操作from selenium.webdriver.common.keys import Keys * 页有时需要将鼠标
- 聚焦爬虫:爬取页面中指定的页面内容。编码流程:1.指定url2.发起请求3.获取响应数据4.数据解析5.持久化存储数据解析分类:1.bs42
- 功能是打开本机端口,映射到指定IP的端口场景1本机:tomcat启动8080,通过本端口工具打开80,指向到tomcat的8080。请求本机
- 实际项目中遇到python模块相互引用问题,查资料,终于算是弄明白了。首先交叉引用或是相互引用,实际上就是导入循环,关于导入循环的详细说明,