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实现查找匹配项作处理后再替换回去的方法
Jun 10 Python
详解python里使用正则表达式的分组命名方式
Oct 24 Python
Python解决N阶台阶走法问题的方法分析
Dec 28 Python
Python闭包之返回函数的函数用法示例
Jan 27 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
总结python中pass的作用
Feb 27 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 Python
Pytorch模型转onnx模型实例
Jan 15 Python
Python如何实现的二分查找算法
May 27 Python
python 使用递归的方式实现语义图片分割功能
Jul 16 Python
python 常见的排序算法实现汇总
Aug 21 Python
python 模块重载的五种方法
Apr 24 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设计模式  Command(命令模式)
2011/06/17 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
PHP答题类应用接口实例
2015/02/09 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
javascript history对象详解
2017/02/09 Javascript
JavaScript基础之流程控制语句的用法
2017/08/31 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
JS如何监听div的resize事件详解
2020/12/03 Javascript
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
python 图像插值 最近邻、双线性、双三次实例
2020/07/05 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
小学生爱国演讲稿
2014/04/25 职场文书
服务承诺口号
2014/05/22 职场文书
公司委托书格式
2014/08/01 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
三好学生竞选稿
2015/11/21 职场文书
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python
python如何利用cv2模块读取显示保存图片
2021/06/04 Python