Python 获取命令行参数的两种实现方式

江岸
江岸
发布时间:2026-10-10 | 2人浏览过
原创

在编写 Python 脚本时,接收外部输入的参数是常见需求。本文介绍两种获取命令行参数的方法:利用 sys 模块直接读取参数列表,以及使用 getopt 模块解析带选项的参数。

使用 sys.argv 获取基础参数

Python 的 sys 模块提供了 argv 列表,用于存储命令行传递的参数。该列表的第一个元素 sys.argv[0] 始终表示当前执行的脚本文件名。从索引 1 开始,依次存放用户输入的具体参数值。

通过遍历 sys.argv,可以获取参数的数量及具体内容。例如,执行命令 python test.py hello world 时,sys.argv[1] 为 'hello',sys.argv[2] 为 'world'。

import sys
print "脚本名:", sys.argv[0]
for i in range(1, len(sys.argv)):
 print "参数", i, sys.argv[i]

使用 getopt 处理带选项的参数

当脚本需要支持类似 -i inputfile -o outputfile 的选项格式时,使用 getopt 模块更为合适。该模块能够解析短选项和长选项,并将参数分类为选项列表和剩余参数列表。

短选项解析

getopt.getopt() 函数原型为 getopt.getopt(args, options[, long_options])。其中 options 字符串定义了支持的短选项格式:

  • 若选项字符后无冒号,表示该选项为开关状态(如 -h)。
  • 若选项字符后紧跟冒号,表示该选项需要携带附加参数(如 -i 和 -o)。

以 "hi:o:" 为例,h 为开关选项,i 和 o 需带参数。函数返回两个列表:opts 和 args。opts 包含由 (选项, 参数值) 组成的元组列表;args 包含未识别的剩余参数。

import sys, getopt
opts, args = getopt.getopt(sys.argv[1:], "hi:o:")
input_file=""
output_file=""
for op, value in opts:
 if op == "-i":
  input_file = value
 elif op == "-o":
  output_file = value
 elif op == "-h":
  usage()
  sys.exit()

长选项支持

除了短选项,getopt 还支持长选项。在第三个参数 long_options 中指定长选项名称。若长选项需要参数,需在名称后添加等号(=)。

例如,支持 --version 和 --file=error.txt 的调用方式,代码可写为:

getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])

通过结合 sys.argv 与 getopt,可以灵活应对从简单参数传递到复杂命令行交互的各种场景。

以上就是 Python 获取命令行参数的详细内容,更多关于 Python 脚本开发、sys.argv 用法及 getopt 模块的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表