news 2026/4/23 20:42:35

python逐行读取文件内容的三种方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python逐行读取文件内容的三种方法

你想掌握 Python 中逐行读取文件内容的三种常用方法,了解每种方法的使用方式、特点和适用场景,这是文件操作中非常基础且高频的需求。

一、方法 1:for 循环直接遍历文件对象(推荐)

这是 Python 中最简洁、最高效的逐行读取方式,无需手动管理文件指针,Python 会自动按行读取,且内存占用极低(不会一次性加载整个文件)。

代码示例

python

# 打开文件(使用with语句可自动关闭文件,避免资源泄漏) with open("test.txt", "r", encoding="utf-8") as f: # 直接遍历文件对象,逐行读取 for line_num, line in enumerate(f, 1): # enumerate从1开始计数行号 # 去除每行末尾的换行符(\n)和空格 clean_line = line.strip() print(f"第{line_num}行内容:{clean_line}")
关键说明
  • with open(...)是 Python 的上下文管理器,代码块执行完毕后会自动关闭文件,避免手动调用f.close()的遗漏;
  • 遍历文件对象时,Python 会逐行加载内容,即使文件有 GB 级大小,也不会占满内存;
  • line.strip()用于去除每行末尾的换行符\n、回车符\r和首尾空格,根据需求可选。
适用场景
  • 绝大多数常规场景(读取日志文件、配置文件、大文件等),是首选方法

二、方法 2:readline () 方法(手动逐行读取)

readline()方法会每次读取文件的一行内容,返回字符串(包含换行符),直到读取到文件末尾返回空字符串"",适合需要手动控制读取节奏的场景。

代码示例

python

# 打开文件 with open("test.txt", "r", encoding="utf-8") as f: line_num = 1 # 循环读取每行,直到返回空字符串 while True: line = f.readline() # 判断是否读取到文件末尾 if not line: break clean_line = line.strip() print(f"第{line_num}行内容:{clean_line}") line_num += 1
关键说明
  • readline()每次只读取一行,需配合while循环使用;
  • 读取到文件末尾时,readline()返回空字符串,此时终止循环;
  • 可通过f.seek(0)重置文件指针到开头,重新读取(适合需要重复读取文件的场景)。
适用场景
  • 需要手动控制读取过程(如读取几行后暂停、条件性跳过某些行);
  • 小文件、需要精准控制文件指针位置的场景。

三、方法 3:readlines () 方法(先读入列表再遍历)

readlines()会一次性将文件所有内容读取到一个列表中,列表的每个元素对应文件的一行,再通过遍历列表实现逐行读取。

代码示例

python

# 打开文件 with open("test.txt", "r", encoding="utf-8") as f: # 一次性读取所有行到列表 all_lines = f.readlines() # 遍历列表逐行处理 for line_num, line in enumerate(all_lines, 1): clean_line = line.strip() print(f"第{line_num}行内容:{clean_line}")
关键说明
  • readlines()会将整个文件加载到内存,生成一个字符串列表;
  • 优点是读取后可多次遍历列表(无需重新打开文件),缺点是读取大文件时会占用大量内存(如 1GB 文件会生成 1GB 的列表);
  • 可通过切片all_lines[0:10]快速获取指定行范围的内容。
适用场景
  • 小文件(几 MB 以内)、需要多次复用文件内容、快速定位指定行的场景;
  • 不推荐用于大文件,容易导致内存溢出。

总结

  1. for 循环遍历文件对象:最简洁、高效,内存友好,是常规场景的首选;
  2. readline () 方法:手动控制读取节奏,适合需要精准控制文件指针的场景;
  3. readlines () 方法:一次性读入列表,仅适用于小文件,可多次复用内容。

核心原则:读取大文件优先用方法 1,小文件且需复用内容用方法 3,手动控制读取流程用方法 2。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:30:25

Nextcloud Docker镜像深度评测:三大版本实战指南与最佳实践

Nextcloud Docker镜像深度评测:三大版本实战指南与最佳实践 【免费下载链接】docker ⛴ Docker image of Nextcloud 项目地址: https://gitcode.com/gh_mirrors/dock/docker 在构建私有云存储解决方案时,选择合适的Nextcloud Docker镜像版本直接影…

作者头像 李华
网站建设 2026/4/23 9:55:10

深度强化学习实战指南:Dopamine框架中Rainbow算法的完整解析

深度强化学习实战指南:Dopamine框架中Rainbow算法的完整解析 【免费下载链接】dopamine Dopamine is a research framework for fast prototyping of reinforcement learning algorithms. 项目地址: https://gitcode.com/gh_mirrors/dopami/dopamine Dopami…

作者头像 李华
网站建设 2026/4/23 13:20:14

5分钟搭建专业后台系统:AdminLTE完整使用指南

5分钟搭建专业后台系统:AdminLTE完整使用指南 【免费下载链接】AdminLTE ColorlibHQ/AdminLTE: AdminLTE 是一个基于Bootstrap 4/5构建的开源后台管理模板,提供了丰富的UI组件、布局样式以及响应式设计,用于快速搭建美观且功能齐全的Web管理界…

作者头像 李华
网站建设 2026/4/23 5:42:40

PyTorch-CUDA-v2.6镜像是否支持LlamaIndex构建知识库?支持

PyTorch-CUDA-v2.6 镜像是否支持 LlamaIndex 构建知识库? 在当前企业加速推进智能化转型的背景下,如何高效地将海量非结构化文档(如PDF、网页、技术手册)转化为可检索、可问答的知识资产,已成为AI应用落地的关键挑战。…

作者头像 李华
网站建设 2026/4/23 11:35:15

EN50160电压标准中文版:电力工程师的必备技术指南

EN50160电压标准中文版:电力工程师的必备技术指南 【免费下载链接】标准EN50160-公共供电系统的电压特征_中文版PDF下载介绍 本开源项目提供标准EN50160《公共供电系统的电压特征》中文版PDF下载资源。该标准详细规定了公共供电系统的电压等级、电压偏差、电压波动、…

作者头像 李华
网站建设 2026/4/23 16:11:54

环境仿真软件:AnyLogic_(2).AnyLogic的安装与配置

AnyLogic的安装与配置 在开始使用AnyLogic进行环境仿真之前,首先需要正确地安装和配置软件环境。本节将详细介绍如何安装AnyLogic软件,并配置必要的开发环境,以便您可以顺利地进行仿真模型的开发和运行。 1. 下载AnyLogic AnyLogic提供多个…

作者头像 李华