zoukankan      html  css  js  c++  java
  • python中argparse

    python中argparse

    在很多编程语言中,运行程序可以直接使用function(a,b,……)运行程序,但是在python中就无法实现,那么我们如何在命令行中传递参数呢?在python的中,有一个argparse包,能够实现。

         当遇到需要参数的情况时,有以下三种处理方法:

         1. 直接给定

                   这种方法虽然实现起来方便,但是灵活性非常差,每次都需要打开python文件修改参数。

         2. 手动解析

                   这种方法就是写一个小代码段用来对输入的命令进行解析,例如:

                   import sys

                   def TestSys():

                          for arg in sys.argv[1: ] :        #对输入的第二个参数到最后,arg[0] 为第一个参数

                                print arg 

                     这个方法也不错,缺点就是每次输入的格式必须正确,多一个少一个都不行。

           3. 自动解析

                      就是使用python中的包argparse来解析,下面用一个实例来说明其用法。

                      import argparse #导入包

                      parser = argparse.ArgumentParser()      #创建一个解析处理器

                      #下面设定需要处理的参数,格式如下:

                      #parser.add_argument('-shortname','--fullname',type=?,default=?)#参数数量可选

                      parser.add_argument('para')  #这种格式不满足上述格式,但是是正确的,并且是最简单的。它表示

                                                                     #para这个参数是必须有的

                      parser.add_argument('-shortname','--fullname')#存在简称和全程的格式在输入时可有可无

                      parser.add_argument('--fullnage',type=?,default=?)#当然不使用简称也是可以的

                      ……

                      ……

                      #可以设置多个参数

                      #获取参数值

                      args = parser.parse_args() 

                      para = args.fullname

                      实例如下(可直接运行):

    [python] view plain copy
     
    1. </pre></p><p><span style="font-size:18px;">                   </span><pre name="code" class="python">#!/usr/bin/env python  
    2.  # encoding: utf-8   
    3. from PIL import Image  
    4. import argparse  
    5.   
    6. parser = argparse.ArgumentParser()  
    7.   
    8. parser.add_argument('file')     #输入文件  
    9. parser.add_argument('-ob', '--output')   #输出文件  
    10. parser.add_argument('--width', type = int,default=80) #输出字符画宽  
    11. parser.add_argument('--height', type = int,default = 80) #输出字符画高  
    12. args = parser.parse_args()  
    13. IMG = args.file  
    14. WIDTH = args.width  
    15. HEIGHT = args.height  
    16. OUTPUT = args.output  
    17.   
    18. print IMG  
    19. print WIDTH  
    20. print HEIGHT  
    21. print OUTPUT  

    在命令行中输入:

    [python] view plain copy
     
    1. python c.py ascii_dora.png -o output.txt --width 100 --height 80  


    其中 c.py 为python文件名,ascii_dora.png为图片名称(参数一),output.txt为输出文件名(参数二),后面为长度和宽度两个参数

    结果如下:

    ascii_dora.png  #获得了文件名

    100  #获得了输入值100

    80   #获得了默认值

    output.txt   #获得输出文件名

    Another example:

    [python] view plain copy
     
    1. def main(argv):  
    2.   
    3.     parser = argparse.ArgumentParser()  
    4.     parser.add_argument('-m','--map')  
    5.     parser.add_argument('-d','--dir', nargs='+')  
    6.     parser.add_argument('-o','--output')  
    7.     args = parser.parse_args()  
    8.     mapfile = args.map  
    9.     srcdir = args.dir  
    10.     output  = args.output  

    假设文件名为a.py, 则示例命令为:python  a.py -m b.map -d c d f -o outpt.txt

  • 相关阅读:
    JID 2.0 RC4 发布,高性能的 Java 序列化库
    FBReaderJ 1.6.3 发布,Android 电子书阅读器
    Arquillian 1.0.3.Final 发布,单元测试框架
    JavaScript 的宏扩展 Sweet.js
    Hypertable 0.9.6.5 发布,分布式数据库
    JRuby 1.7.0 发布,默认使用 Ruby 1.9 模式
    httppp 1.4.0 发布,HTTP响应时间监控
    Redis 2.6.0 正式版发布,高性能K/V服务器
    OfficeFloor 2.5.0 发布,IoC 框架
    XWiki 4.3 首个里程碑发布
  • 原文地址:https://www.cnblogs.com/yymn/p/8056436.html
Copyright © 2011-2022 走看看