Python逐行读取文件的四种方法及性能对比

南乔
南乔
发布时间:2026-10-13| 5人浏览过
原创

本文总结了Python中四种逐行读取文件内容的方法,包括readline函数、一次性读取多行、直接for循环以及fileinput模块。文章详细分析了各方法的优缺点,如内存占用与读取速度的权衡,并提供了Python 3环境下的测试代码,帮助开发者根据实际场景选择最优方案。

Python逐行读取文件的四种常用方法

Python实现逐行读取文件内容的四种常用方法

下文将详细介绍四种在Python中逐行读取文件内容的实现方式,并深入分析每种方法的优势、劣势及其适用场景。所有示例代码均已在Python 3环境中验证通过;若需在Python 2环境下运行,部分代码已添加注释说明,稍作调整即可兼容。

方法一:利用readline函数

方法一:利用readline函数


# -*- coding: UTF-8 -*-
f = open("/pythontab/code.txt") # 返回一个文件对象
line = f.readline() # 调用文件的 readline()方法
while line:
  # print line,   # 在 Python 2中,后面跟 ',' 将忽略换行符
  print(line, end='') # 在 Python 3中使用
  line = f.readline()
f.close()

优点:有效节省内存空间,无需将整个文件内容一次性加载至内存中。 缺点:相较于其他方法,读取速度相对较慢。

方法二:批量读取多行数据

方法二:批量读取多行数据


代码如下:
# -*- coding: UTF-8 -*-
f = open("/pythontab/code.txt")
while 1:
  lines = f.readlines(10000)
  if not lines:
    break
  for line in lines:
    print(line)
f.close()

通过一次性读取多行数据,可以显著提升读取速度,但会相应增加内存消耗。开发者可根据实际内存情况灵活调整每次读取的行数。

方法三:直接对文件对象进行for循环

方法三:直接对文件对象进行for循环

可以直接对文件对象使用for循环来逐行读取数据,具体实现代码如下:


# -*- coding: UTF-8 -*-
for line in open("/pythontab/code.txt"):
  # print line, #python2 用法
  print(line)

方法四:采用fileinput模块

方法四:采用fileinput模块


import fileinput
for line in fileinput.input("/pythontab/code.txt"):
  print(line)

该方式使用起来简单便捷,但读取速度相对较慢。

以上即为本次介绍的所有相关知识点,感谢大家的学习与支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

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 算法库。