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学习小技巧之列表项的排序
May 20 Python
Python判断两个对象相等的原理
Dec 12 Python
python通过伪装头部数据抵抗反爬虫的实例
May 07 Python
ubuntu17.4下为python和python3装上pip的方法
Jun 12 Python
python数据结构之线性表的顺序存储结构
Sep 28 Python
Python socket模块方法实现详解
Nov 05 Python
如何在python中执行另一个py文件
Apr 30 Python
Python插件机制实现详解
May 04 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
Jul 09 Python
python openCV自制绘画板
Oct 27 Python
Python爬虫爬取ts碎片视频+验证码登录功能
Feb 22 Python
Python中json.dumps()函数的使用解析
May 17 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 文件缓存的性能测试
2010/04/25 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
php7下的filesize函数
2019/09/30 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
把textarea中字符串里含有的回车换行替换成<br>的javascript代码
2007/04/20 Javascript
javascript 节点排序 2
2011/01/31 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
python elasticsearch环境搭建详解
2019/09/02 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
写好自荐信需做到的5要点
2014/03/07 职场文书
企业授权委托书范本
2014/04/02 职场文书
2014年话务员工作总结
2014/11/19 职场文书
六一儿童节开幕词
2015/01/29 职场文书
在redisCluster中模糊获取key方式
2021/07/09 Redis