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 sys模块sys.path使用方法示例
Dec 04 Python
python回调函数用法实例分析
May 09 Python
如何使用python爬取csdn博客访问量
Feb 14 Python
Python 专题一 函数的基础知识
Mar 16 Python
Python读csv文件去掉一列后再写入新的文件实例
Dec 28 Python
使用python3+xlrd解析Excel的实例
May 04 Python
Python语言快速上手学习方法
Dec 14 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
Python字符串hashlib加密模块使用案例
Mar 10 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
利用Python实现Json序列化库的方法步骤
Sep 09 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 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
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
2016/01/08 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
2018/03/06 jQuery
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
基于jQuery拖拽事件的封装
2020/11/29 jQuery
Python之用户输入的实例
2018/06/22 Python
Flask之请求钩子的实现
2018/12/23 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
pytorch 修改预训练model实例
2020/01/18 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
html5指南-3.如何实现html元素拖拽功能
2013/01/07 HTML / CSS
html5菜单折纸效果
2014/04/22 HTML / CSS
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
人事档案接收函
2014/01/12 职场文书
火车来了教学反思
2014/02/11 职场文书
师德师风承诺书
2014/05/23 职场文书
创先争优标语
2014/06/27 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
招标保密承诺书
2015/01/20 职场文书
义诊活动总结
2015/02/04 职场文书
焦裕禄纪念馆观后感
2015/06/09 职场文书
golang生成vcf通讯录格式文件详情
2022/03/25 Golang