Python基于argparse与ConfigParser库进行入参解析与ini parser

一.入参解析库 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的资料请关注我们其它相关文章!

(0)

相关推荐

  • 在ipython notebook中使用argparse方式

    ipython notebook经常被我用作debug的工具.今天调试一段代码,里面用到了argparse这个包来解析命令行参数.但是在ipython notebook里,命令行参数与实际执行的时候是完全不同的,因此代码没办法直接跑起来. 首先查看parse_args()函数的文档,发现函数接口长这样:ArgumentParser.parse_args(args=None, namespace=None).这个args要求什么类型并没有说,不过文档最后有一句:"默认情况下,参数字符串取自于sys

  • Python argparse模块使用方法解析

    这篇文章主要介绍了Python argparse模块使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 说明 argparse 模块是python 用于解析命令行参数和选项的标准模块. 程序定义它需要的参数,然后 argparse 模块将弄清如何从 sys.argv 解析出那些参数. argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息. 2. 使用流程 使用argparse 模块配置命令行参

  • python 如何利用argparse解析命令行参数

    命令行参数工具是我们非常常用的工具,比如当我们做实验希望调节参数的时候,如果参数都是通过硬编码写在代码当中的话,我们每次修改参数都需要修改对应的代码和逻辑显然这不太方便.比较好的办法就是把必要的参数设置成通过命令行传入的形式,这样我们只需要在运行的时候修改参数就可以了. sys.argv 解析命令行传入参数最简单的办法就是通过sys.argv,sys.argv可以获取到我们通过命令行传入的参数. import sys print(sys.argv) 用法很简单,只需要调用sys.argv即可.a

  • python入门:argparse浅析 nargs='+'作用

    我就废话不多说了,大家还是直接看代码吧~ #aaa.py #version 3.5 import os #这句是没用了,不知道为什么markdown在编辑代码时,不加这一句,就不能显示代码高亮[汗] import argparse parser = argparse.ArgumentParser(description='Process some integers...') #初始化一个分析器 #parser.add_argument(中的参数) #__init__(self, option_s

  • 浅谈Python 命令行参数argparse写入图片路径操作

    什么是命令行参数? 命令行参数是在运行时给予程序/脚本的标志.它们包含我们程序的附加信息,以便它可以执行. 并非所有程序都有命令行参数,因为并非所有程序都需要它们. 为什么我们使用命令行参数? 如上所述,命令行参数在运行时为程序提供附加信息. 这允许我们在不改变代码的情况下动态地为我们的程序提供不同的输入 . 您可以绘制命令行参数类似于函数参数的类比.如果你知道如何在各种编程语言中声明和调用函数,那么当你发现如何使用命令行参数时,你会立刻感到宾至如归. 鉴于这是计算机视觉和图像处理博客,您在这里

  • 详解python中的三种命令行模块(sys.argv,argparse,click)

    Python作为一门脚本语言,经常作为脚本接受命令行传入参数,Python接受命令行参数大概有三种方式.因为在日常工作场景会经常使用到,这里对这几种方式进行总结. 命令行参数模块 这里命令行参数模块平时工作中用到最多就是这三种模块:sys.argv,argparse,click.sys.argv和argparse都是内置模块,click则是第三方模块. sys.argv模块(内置模块) 先看一个简单的示例: #!/usr/bin/python import sys def hello(name,

  • python argparser的具体使用

    一.正常运行: 咱们随便写个文件: # test.py import argparse ap = argparse.ArgumentParser() ap.add_argument('-i', '--image', help='传入图片文件') args = vars(ap.parse_args()) print(args) 咱们运行一下: python test.py --image './test.png' python test.py -i './test.png' 没问题吧: {'ima

  • python argparse传入布尔参数false不生效的解决

    跑代码时,在命令行给python程序传入bool参数,但无法传入False,无论传入True还是False,程序里面都是True.下面是代码: parser.add_argument("--preprocess", type=bool, default=True, help='run prepare_data or not') 高端解决方案 使用可选参数store_true,将上述代码改为: parse.add_argument("--preprocess", ac

  • python argparse模块通过后台传递参数实例

    我就废话不多说了,大家还是直接看代码吧! cmd.py # -*- coding: utf-8 -*- from PySide import QtGui, QtCore import os,sys import tory import argparse parser = argparse.ArgumentParser() parser.add_argument("-v", "--verbosity", help="increase output verbo

  • Python 利用argparse模块实现脚本命令行参数解析

    study.py内容如下 #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'shouke' import argparse def argparseFunc(): ''' 基于argparse模块实现命令参数解析功能 执行示例: python study.py -i 172.19.7.236 -p 8080 -a -r python study.py --ip 172.19.7.236 --port 7077 --auth -w

  • Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python用于解析命令行参数和选项的标准模块.argparse模块的作用是用于解析命令行参数. 使用步骤 1.首先导入该模块 2.然后创建一个解析对象 3.然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项 4.最后调用parse_args()方法进行

随机推荐