python中argparse

本文介绍了在Python中如何通过argparse模块处理命令行参数。内容包括argparse的使用方法,如添加参数、获取参数值,并提供了两个实际运行的例子,展示了如何通过argparse实现参数的灵活配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     在很多编程语言中,运行程序可以直接使用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


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

</pre></p><p><span style="font-size:18px;">                   </span><pre name="code" class="python">#!/usr/bin/env python
 # encoding: utf-8 
from PIL import Image
import argparse

parser = argparse.ArgumentParser()

parser.add_argument('file')     #输入文件
parser.add_argument('-ob', '--output')   #输出文件
parser.add_argument('--width', type = int,default=80) #输出字符画宽
parser.add_argument('--height', type = int,default = 80) #输出字符画高
args = parser.parse_args()
IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output

print IMG
print WIDTH
print HEIGHT
print OUTPUT
 

在命令行中输入:


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:

def main(argv):

    parser = argparse.ArgumentParser()
    parser.add_argument('-m','--map')
    parser.add_argument('-d','--dir', nargs='+')
    parser.add_argument('-o','--output')
    args = parser.parse_args()
    mapfile = args.map
    srcdir = args.dir
    output  = args.output

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值