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 相关文章推荐
tornado捕获和处理404错误的方法
Feb 26 Python
python简单商城购物车实例代码
Mar 15 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
python将字符串以utf-8格式保存在txt文件中的方法
Oct 30 Python
pycharm在调试python时执行其他语句的方法
Nov 29 Python
python3实现zabbix告警推送钉钉的示例
Feb 20 Python
python射线法判断检测点是否位于区域外接矩形内
Jun 28 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
Jan 08 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
Mar 04 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
Jun 29 Python
python输出国际象棋棋盘的实例分享
Nov 26 Python
Python的flask接收前台的ajax的post数据和get数据的方法
Apr 12 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
Python文件处理
2016/02/29 Python
Python装饰器原理与用法分析
2018/04/30 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
教育科研先进个人材料
2014/01/26 职场文书
幼儿园运动会加油词
2014/02/14 职场文书
爱情保证书
2015/01/17 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技