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)
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)