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

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

在编写 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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。