问题描述
在编写 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