处理命令行参数的模块optionparser

本文介绍如何使用Python的OptParse模块定义和解析命令行参数,包括创建OptionParser对象、定义命令行参数、分组参数及解析命令行。

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

1 必须 import OptionParser 类,创建一个 OptionParser 对象:
from optparse import OptionParser 或 import optparse
自定义的程序使用方法信息(use message):
usage = "usage: %prog [options] arg1 arg2"
parser = OptionParser(usage)  或 parser = optparse.OptionParser(usage)

2 使用 add_option 来定义命令行参数,每个命令行参数就是由参数名字符串和参数属性组成的。如 -d 或者 –download 分别是长短参数名:
parser.add_option("-d", "--download", action= "store_false", help = "don't download patch", default= True)
parse.add_option("-c", "--comp", dest="test_comp", action= "store_true", help = "don't compile", default= "compile_")
参数:
default:参数的默认值,运行脚本没有提供-d或--download时,options.download的默认值。
dest:选项的属性,如果没有dest,则用默认的--后面的长参数名作为选项的属性,如果有dest,则用dest的值作为选项的属性,如options.test_comp的默认值为"compile_" ,这时候在用options.comp会报AttributeError
action:默认是"store"。设置flag option,当action="store_true"时,命令列参数中出现了"-c",则属性值是True; 当action="store_false"时出现为False,e.g :
parse.add_option("-d", "--download", action= "store_false", help = "don't download patch")
parse.add_option("-k", "--checkview", action= "store_true", help = "don't check view")
./test.py -d -k ,属性值分别为False和True;   ./test.py 没有default值时都为None


3 一旦你已经定义好了所有的命令行参数,调用 parse_args() 来解析程序的命令行:
定义:
option: 一些传递给命令的额外argument,以改变程式的行为。以本例来说, "-d", "-c" 就是 option
option argument: 紧跟随在option 后的argument,就是option argument。
positional argument: 当一个argument list 被解读完后,剩下的就是positional argument

options, args = parser.parse_args()

parse_args() 返回的两个值:
***options,类型为<type 'instance'>,保存有命令行参数值。只要知道命令行参数名(属性Attribute),如 download,就可以访问其对应的值: options.download(.后要跟长参数名,跟短参数名报错)
***args,它是一个由位置参数组成的列表。./test.py -d xxx yyy -c zzz   
action= "store_false"时,除-以外都是位置参数,args = ['xxx','yyy','zzz'] 注: sys.argv = ['./test.py','-d','xxx','yyy','-c','zzz']
action为默认值,-后面的为option参数,多余的是位置参数 args = ['yyy']

如果程序有很多的命令行参数,你可能想为他们进行分组,这时可以使用 OptonGroup
group = optparse.OptionGroup(parser,"Test froup Options")
group.add_option("-g", "--group", action="store_true", help="Group option", default="xxx")
parser.add_option_group(group)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值