「Python」- 解析命令行参数

  CREATED BY JENKINSBOT

问题描述

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

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

解决方案

通过 argparse 模块

import argparse

parser = optparse.OptionParser()
parser.add_option('-h', '--hostname', action="store", dest="query", help="query string", default="spam")
parser.add_option('-p', '--port', help="port number", required=True)

options, args = parser.parse_args()

print 'Query string:', options.query

注意事项:在 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