首页 » python编程 » python中使用optparse模块来接收命令行参数

python中使用optparse模块来接收命令行参数

时间:2013-07-13作者:felix.chan分类:python编程评论:0

python接收命令行参数,之前用sys.argv来处理,但是感觉不够方便,后来查了一下,python其实有个专门来处理该项工作的模块,optparse模块,非常方便。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
__author__ = 'felix.chan'
# -*- coding:utf-8 -*-
 
import optparse
 
parse = optparse.OptionParser()
 
 
parse.add_option('-p','--port',dest='port',action='store',type=int,metavar='port',help='port number:1-65535')
parse.add_option('-u','--user',dest='user',type=str,metavar='user',help='execute user')
 
parse.add_option('-v','--verbose',dest='verbose',action='store_true',metavar=' ',help='show detail messages')
parse.add_option('-q','--quite',dest='quite',action='store_false',metavar=' ',help='run quitely')
 
options,args = parse.parse_args()
 
print(options)
print(args)
 
print('port: ',options.port)
print('user: ',options.user)
print('verbose: ',options.verbose)
print('quite: ',options.quite)

将文件保存为t2.py,执行该脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
D:\test1>t2.py felix chan -u root1 root2 -p123 -v -q
{'quite': False, 'verbose': True, 'port': 123, 'user': 'root1'}
['felix', 'chan', 'root2']
('port: ', 123)
('user: ', 'root1')
('verbose: ', True)
('quite: ', False)
 
D:\test1>t2.py -h
Usage: t2.py [options]
 
Options:
  -h, --help            show this help message and exit
  -p port, --port=port  port number:1-65535
  -u user, --user=user  execute user
  -v, --verbose         show detail messages
  -q, --quite           run quitely

使用详解:

dest='port' 将该用户输入的参数保存到变量port中,可以通过options.port方式来获取该值
 
action有三种类型:
action='store' 默认类型,可以忽略不写。用户必须给出一个明确的参数值,该类型定义了将实际参数值保存到dest指定变量中
action='store_true' 用户不需给出参数值,该类型定义了将布尔值true保存到dest指定的变量中
action='store_false' 用户不需给出参数值,该类型定义了将布尔值false保存到dest指定的变量中
store_true和store_false主要用于参数后面不用带参数值的情况下,例如 -v -q -s等等
 
type='int'定义了用户输入的参数值必须为整型数值,如果用户输入的为字符类型,则程序会提示参数输入错误信息,其他类型还有str,float等等
 
metavar='port' 当用户输入-h参数来查看帮助信息时,如果metavar=''或没有设置时,那么显示的帮助信息的参数后面默认带上dest所定义的变量名,如果metavar有定义自己的值时,那么显示的帮助信息的参数后面不在使用dest所定义的变量名,而是使用metavar的值。
 
help='****'定义了用户在输入-h查看帮助信息时,该参数应该显示的帮助提示信息。

原创文章,转载请注明: 转载自红防联盟www.rednat.com

本文链接地址: python中使用optparse模块来接收命令行参数

|2|right
Tags:
0 条评论

暂时没有评论!

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>