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内置的字符串处理函数整理
Jan 29 Python
用smtplib和email封装python发送邮件模块类分享
Feb 17 Python
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
Python中Random和Math模块学习笔记
May 18 Python
python获取指定路径下所有指定后缀文件的方法
May 26 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
Python异常模块traceback用法实例分析
Oct 22 Python
基于Tensorflow一维卷积用法详解
May 22 Python
简单了解如何封装自己的Python包
Jul 08 Python
python speech模块的使用方法
Sep 09 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 07 Python
python分分钟绘制精美地图海报
Feb 15 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
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
jquery.ui.draggable中文文档
2009/11/24 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
2018/12/28 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
解决Nuxt使用axios跨域问题
2020/07/06 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
python提示No module named images的解决方法
2014/09/29 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
python目录与文件名操作例子
2016/08/28 Python
python生成圆形图片的方法
2020/03/25 Python
Django1.9 加载通过ImageField上传的图片方法
2018/05/25 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
详解CSS3中常用的样式【基本文本和字体样式】
2020/10/20 HTML / CSS
MIS软件工程师的面试题
2016/04/22 面试题
公司行政经理岗位职责
2013/12/24 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
英文升职感谢信
2015/01/23 职场文书
工地材料员岗位职责
2015/04/11 职场文书
监守自盗观后感
2015/06/10 职场文书
总结会主持词
2015/07/02 职场文书