我是靠谱客的博主 漂亮花瓣,最近开发中收集的这篇文章主要介绍optparse模块学习optparse模块学习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

optparse模块学习

在python中有两类处理命令行的方式:

  • 使用sys.argv(此种方式适用于使用命令行运行python代码时,解析命令行参数)
  • 另一种方法是使用python代码处理(额外添加参数等,此种方法主要用到两个模块getopt、optparse)

OptionParser类中底层使用的是sys.argv读取参数。OptionParser是对argv的高度封装,用来处理参数。在OptionParser中有如下代码:(可看出使用的是argv)
在这里插入图片描述

optparse是一种类似于dos命令行的一种设计模块,例如:dos命令中添加-f会触发一种事件。

使用步骤

创建parser实例

每个parser实例代表一类命令实例。 例如-f是文件命令中的一个option,它属于文件parser对象;-zxvf是压缩解压命令中的一个option,它属于压缩解压parser对象。

from optparser import OptionParser
parser = OptionParser()

添加选项

例如:-f就是一个选项,选项具有简写与全名。

parser.add_option("-f", "--fil")
#-f是简写,--fil是全名;本质上两者使用时是等价的,但全名只有--fil。两者在命令行中使用时会被识别。
(option, params) = parser.parser_args()
print(option)
print(params)

例如dos命令(我的代码写在test2.py中):

(pytorch01) D:编程项目Pythonsvm_study>python test2.py -f 2
{'fil': '2'}
[]

(pytorch01) D:编程项目Pythonsvm_study>python test2.py 1 2 3 4
{'fil': None}
['1', '2', '3', '4']

(pytorch01) D:编程项目Pythonsvm_study>python test2.py -f 1 2 3 4
{'fil': '1'}
['2', '3', '4']

(pytorch01) D:编程项目Pythonsvm_study>python test2.py 1 -f 2 3 4
{'fil': '2'}
['1', '3', '4']

(pytorch01) D:编程项目Pythonsvm_study>python test2.py 1 -f 2 3 x=4
{'fil': '2'}
['1', '3', 'x=4']

从上例可以看出:parser_args()会返回一个字典(选项字典,命令行中选项后面跟着的就是选项值)与一个参数列表(除了选项后跟着的参数外都是参数列表中的参数)。parse_args可以有参数(使用参数后就按照参数来进行解析,参数格式["-f", “12”, “aa”]过["-f12", “aa”]),不定义的话使用默认的sys.argv[1:]

parser.add_option("-f", "--file", action="store", type="string", dest="filename")
(options, args) = parser.parse_args(["-f", "12"])
#与["-f12"]等价
print(options)
print(options.filename, type(options.filename))
print(args)
(pytorch01) D:编程项目Pythonsvm_study>python test2.py -f 1 2 3
{'filename': '12'}
12 <class 'str'>
[]

添加选项函数有四个参数:

add_option的参数

看下述一段代码中:

parser.add_option("-f", "--file", action="store", type="string", dest="filename")
(options, args) = parser.parse_args()
print(options)
print(options.filename, type(options.filename))
print(args)
(pytorch01) D:编程项目Pythonsvm_study>python test2.py -f 1 2 3
{'filename': '1'}
1 <class 'str'>
['2', '3']

可以看见,dest将全名file覆盖了,所以options字典中的键为filename。type定义了选项值的类型(默认为string)。action就是告诉optparse遇到参数应该按照add_option时定义的来使用(action默认为store)。

action:

  • 为store时:告诉optparse按照add_option时定义的那样解析。
  • 为store_true时:option后面有参数那么选项值为True。
  • 为store_false时:option后面有参数那么选项值为False。

type: 指定选项值的类型。

dest: 指定选项名(也就是options字典中的键值)

default: 当没有参数时默认给选项字典赋值。

parser.add_option("-f", "--file", action="store", type="string", dest="filename", default="hahaha")
(options, args) = parser.parse_args()
print(options)
print(options.filename, type(options.filename))
print(args)
(pytorch01) D:编程项目Pythonsvm_study>python test2.py
{'filename': 'hahaha'}
hahaha <class 'str'>
[]

help: 帮助信息提示。添加了usage信息的。

USAGE = "one two three"
parser = OptionParser(USAGE)
parser.add_option("-f", "--file", action="store", type="string", dest="filename", default="hahaha", help="no help")
parser.print_usage()
parser.print_help()
(pytorch01) D:编程项目Pythonsvm_study>python test2.py -f 1 2 3
Usage: one two three

Usage: one two three

Options:
  -h, --help            show this help message and exit
  -f FILENAME, --file=FILENAME
                        no help

option:中-h和-f开头的那两段是自动生成的。

最后

以上就是漂亮花瓣为你收集整理的optparse模块学习optparse模块学习的全部内容,希望文章能够帮你解决optparse模块学习optparse模块学习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部