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 client使用http post 到server端的代码
Feb 10 Python
numpy自动生成数组详解
Dec 15 Python
Python返回数组/List长度的实例
Jun 23 Python
python中datetime模块中strftime/strptime函数的使用
Jul 03 Python
Python 使用类写装饰器的小技巧
Sep 30 Python
python学习之hook钩子的原理和使用
Oct 25 Python
python读取各种文件数据方法解析
Dec 29 Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 Python
让你Python到很爽的加速递归函数的装饰器
May 26 Python
python实现简单银行管理系统
Oct 25 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
Python __slots__的使用方法
Nov 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
php自定义函数截取汉字长度
2014/05/15 PHP
php操作MongoDB类实例
2015/06/17 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
java script编程起步(第三课)
2007/01/10 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
2013/04/12 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
详解vue中组件参数
2018/07/09 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
python中mechanize库的简单使用示例
2014/01/10 Python
在Python中使用模块的教程
2015/04/27 Python
详解Python中expandtabs()方法的使用
2015/05/18 Python
python实现人脸识别代码
2017/11/08 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
python实现的分层随机抽样案例
2020/02/25 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
优秀班集体获奖感言
2014/02/03 职场文书
幼儿园教师自我鉴定
2014/03/20 职场文书
国庆节演讲稿
2014/05/27 职场文书
成事在人观后感
2015/06/16 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
Redis RDB技术底层原理详解
2021/09/04 Redis
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS