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