南昌市网站建设_网站建设公司_交互流畅度_seo优化
2025/12/29 9:09:13 网站建设 项目流程

你想掌握 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。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询