「Python」- 解析命令行参数

问题描述

在编写 Python 工具时,我们经常需要解析命令行参数,以获取输入数据。

该笔记将记录:在 Python 中,如何解析命令行参数的方法(比如,使用模块 getopt 解析命令行参数),以及相关问题处理。

解决方案

通过 argparse 模块

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--host", default="0.0.0.0", help="Exporter listen address")
parser.add_argument("--port", default="9349", help="Exporter listen port")
args = parser.parse_args()

print 'Query string:', args

注意事项:在 Python 2.7- 中,使用 optparse 模块。

通过 getopt 模块

使用示例:

import getopt, sys

try:
	opts, args = getopt.getopt(sys.argv[1:], "hc:", ["help","config-file="])
except getopt.GetoptError:
	print("error message")
	sys.exit(1)

for opt, arg in opts:
	if opt == "-h":
		# doing some stuff
	elif opt in ("-h", "--config-file"):
		# doing some stuff
	else:
		# doing some stuff

参考文献

Python 命令行参数
python – What’s the best way to parse command line arguments? – Stack Overflow
Argparse Tutorial — Python 3.9.2 documentation
python – Argparse: Required arguments listed under “optional arguments”? – Stack Overflow