Python getopt的简单使用

一般 getopt使用在解析参数列表上。

格式

一般情况下,选项有“短选项”和“长选项”两种

短选项格式:一个减号一个字母;长选项格式:俩减号多个字母

1
2
3
4
5
6
Options:
-h, --help Help info
-f INPUT Mardown file
-s css for pages
-d OUTPUT HTML file path
-F OUTPUT HTML file name

getopt.getopt 方法有仨参数:要处理的对象列表、短选项组、长选项组

该方法返回值为二元元组,元组中每个元素都是列表, 一个是选项解析结果,另一个是其余参数

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class ArgsParse(object):
"""
命令行参数解析类
"""

# 参数说明
options_explain = '''Options:
-h, --help Help info
-f INPUT Mardown file
-s css for pages
-d OUTPUT HTML file path
-F OUTPUT HTML file name
'''

def __init__(self):
"""
选项有“短选项”和“长选项”两种
短选项格式:一个减号一个字母;长选项格式:俩减号多个字母
getopt.getopt 方法有仨参数:要处理的对象列表、短选项组、长选项组
短选项组为字符串,若选项有参数,后面加冒号
长选项组为列表,若选项有参数,后面加等号
该方法返回值为二元元组,元组中每个元素都是列表
一个是选项解析结果,另一个是其余参数
"""
options, _ = getopt.getopt(sys.argv[1:], 'hf:s:d:F:', ['help'])
self.options_dict = (dict(options))
if '-h' in self.options_dict or '--help' in self.options_dict:
print(self.options_explain)
sys.exit()
self.args_parse()

def args_parse(self):
'''
参数处理函数,从解析后的选项字典中读取各个文件名
'''
self.markdown_file = self.options_dict.get('-f')
self.css_file = self.options_dict.get('-s')
self.html_file_dir = self.options_dict.get('-d')
self.html_file = self.options_dict.get('-F')