Python3 getopt — 解析命令行参数
getopt
是 Python 的一个标准库模块,用于解析命令行选项和参数。它可以帮助你在编写脚本时处理命令行输入。
解析命令行参数的基本步骤如下:
- 导入
getopt
模块。 - 使用
getopt.getopt
方法解析命令行参数。
下面是一个简单的例子,演示如何使用 getopt
解析命令行参数:
import getopt
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], "ho:", ["help", "output="])
except getopt.GetoptError as err:
# 输出错误信息,并显示帮助信息
print(err)
usage()
sys.exit(2)
output = None
for o, a in opts:
if o in ("-h", "--help"):
usage()
sys.exit()
elif o in ("-o", "--output"):
output = a
else:
assert False, "unhandled option"
# 处理位置参数
for arg in args:
print("位置参数:", arg)
# 处理解析出的选项和参数
print("输出文件名:", output)
if __name__ == "__main__":
main()
在这个例子中,我们定义了一个 main
函数,它解析命令行参数。-h
或 --help
选项会显示帮助信息并退出程序,-o
或 --output
选项后面需要跟一个参数,指定输出文件名。sys.argv[1:]
是传给脚本的命令行参数列表,不包括脚本名本身。
getopt.getopt
方法的参数:
- 第一个参数是要解析的命令行参数列表。
- 第二个参数是短选项的字母,后面跟一个冒号(
:
)表示该选项需要参数。 - 第三个参数是长选项名称的列表,可以选择性地带有
=
,表示长选项后面需要参数。
getopt.getopt
返回的是两个列表:
- 第一个列表
opts
包含一个个 (选项, 值) 元组,如果是短选项,值会以空格分隔;如果是长选项,值会在=
后面。 - 第二个列表
args
包含所有未被解析的位置参数。
在解析过程中,如果有任何错误(如未知的选项,需要的选项缺失参数),getopt.GetoptError
异常会被抛出,并包含错误信息。
评论已关闭