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

  • 相关阅读:
    python3画聚类树图
    RedHat 7.0 系统 安装
    在VMware vSphere Client安装新的服务器(虚拟机)
    RedHat 7.0 VMware Tools 安装
    RedHat 7.0 Firefox浏览器 安装与更新
    Redhat 7.0 Opera浏览器 安装
    windows 8.1 IE11 和 windows 10 Edge & IE11 FlashPlayer 的安装与卸载
    在Windows和Mac上输入unicode字符
    已知IP 查看hostname
    RedHat 7.0 Chrome浏览器 安装
  • 原文地址:https://www.cnblogs.com/yymn/p/8056436.html
Copyright © 2011-2022 走看看