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自动化测试实例解析
Sep 28 Python
python操作mongodb根据_id查询数据的实现方法
May 20 Python
深入学习python的yield和generator
Mar 10 Python
python numpy 显示图像阵列的实例
Jul 02 Python
Python在for循环中更改list值的方法【推荐】
Aug 17 Python
python批量复制图片到另一个文件夹
Sep 17 Python
Python txt文件加入字典并查询的方法
Jan 15 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 Python
python线程定时器Timer实现原理解析
Nov 30 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
Feb 20 Python
Python实现对word文档添加密码去除密码的示例代码
Dec 29 Python
浅谈Python 中的复数问题
May 19 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 var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
Vue事件处理原理及过程详解
2020/03/11 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
python实现聊天小程序
2018/03/13 Python
python方法生成txt标签文件的实例代码
2018/05/10 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
Python 必须了解的5种高级特征
2020/09/10 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
介绍下Java中==和equals的区别
2013/09/01 面试题
营业员演讲稿
2013/12/30 职场文书
工作过失检讨书
2014/02/23 职场文书
课外访万家心得体会
2014/09/03 职场文书
80后婚前协议书范本
2014/10/24 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
团员个人总结
2015/02/26 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
古诗之爱国古诗5首
2019/09/20 职场文书