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实现方法
Nov 18 Python
Python文件右键找不到IDLE打开项解决办法
Jun 08 Python
Python批量创建迅雷任务及创建多个文件
Feb 13 Python
简单实现python收发邮件功能
Jan 05 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
python绘制简单彩虹图
Nov 19 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
python 求1-100之间的奇数或者偶数之和的实例
Jun 11 Python
python logging模块的使用总结
Jul 09 Python
python监控进程状态,记录重启时间及进程号的实例
Jul 15 Python
利用python计算时间差(返回天数)
Sep 07 Python
用python的turtle模块实现给女票画个小心心
Nov 23 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 date函数参数详解
2006/11/27 PHP
实用函数10
2007/11/08 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
php 猴子摘桃的算法
2017/06/20 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
javascript之bind使用介绍
2011/10/09 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
python练习程序批量修改文件名
2014/01/16 Python
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
Python执行时间的计算方法小结
2017/03/17 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
django中的HTML控件及参数传递方法
2018/03/20 Python
Python 中导入csv数据的三种方法
2018/11/01 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
乌克兰鞋类购物网站:Eobuv.com.ua
2020/11/28 全球购物
送给程序员的20个Java集合面试问题
2014/08/06 面试题
中学教师请假制度
2014/02/03 职场文书
对照检查剖析材料
2014/09/30 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang
Python时间操作之pytz模块使用详解
2022/06/14 Python
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android