Python基于argparse与ConfigParser库进行入参解析与ini parser


Posted in Python onFebruary 02, 2021

一.入参解析库 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

以上就是Python基于argparse与ConfigParser库进行入参解析与ini parser的详细内容,更多关于Python 入参解析与ini parser的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 Python
python Django批量导入不重复数据
Mar 25 Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
Oct 14 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 Python
关于Kotlin中SAM转换的那些事
Sep 15 Python
python利用faker库批量生成测试数据
Oct 15 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
Jan 11 Python
详解python3类型注释annotations实用案例
Jan 20 Python
python_tkinter弹出对话框创建
Mar 20 Python
python中子类与父类的关系基础知识点
Feb 02 #Python
python中time包实例详解
Feb 02 #Python
python+playwright微软自动化工具的使用
Feb 02 #Python
python爬虫智能翻页批量下载文件的实例详解
Feb 02 #Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
Feb 02 #Python
python3.9.1环境安装的方法(图文)
Feb 02 #Python
M1芯片安装python3.9.1的实现
Feb 02 #Python
You might like
在线竞拍系统的PHP实现框架(一)
2006/10/09 PHP
thinkphp使用phpmailer发送邮件的方法
2014/11/24 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
通过JAVAScript实现页面自适应
2007/01/19 Javascript
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
为Python的web框架编写前端模版的教程
2015/04/30 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
python 初始化一个定长的数组实例
2019/12/02 Python
Python求凸包及多边形面积教程
2020/04/12 Python
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
房地产销售计划书
2014/01/10 职场文书
医院院务公开实施方案
2014/05/03 职场文书
初中学校军训方案
2014/05/09 职场文书
文明单位申报材料
2014/12/23 职场文书
给上级领导的感谢信
2015/01/22 职场文书
防止web项目中的SQL注入
2021/12/06 MySQL