Python读取txt文件推荐四种方法:小文件用open()配read()或pathlib;需逐行处理用for循环(内存友好);readlines()适合中等文件但忌用于大文件。务必指定encoding='utf-8'防乱码,用with确保文件关闭。

读取txt文件是Python中最基础也最常用的操作之一,关键在于选对方法、注意编码和换行处理。
用open()配合read()一次性读取全部内容
适合小到中等大小的文本文件(比如日志、配置、短篇文章),代码简洁直观。
- 默认以文本模式打开,需指定encoding参数避免中文乱码,推荐encoding='utf-8'
- read()返回整个字符串,含换行符\n;read().strip()可去掉首尾空白(包括换行)
- 记得用with语句自动关闭文件,防止资源泄露
示例:
with open('data.txt', encoding='utf-8') as f:
content = f.read().strip()
print(content)
用readlines()按行读取为列表
适合需要逐行处理、但又想一次性加载全部行的场景,比如统计行数、筛选特定行。
立即学习“Python免费学习笔记(深入)”;
- readlines()返回每行带末尾\n的字符串列表,可用line.rstrip('\n')清理
- 如果文件很大,不建议用这个方法,容易占内存;此时应改用循环逐行读取
示例:
with open('data.txt', encoding='utf-8') as f:
lines = [line.rstrip('\n') for line in f.readlines()]
用for循环逐行读取(推荐用于大文件)
内存友好,适合处理几MB甚至上百MB的文本,边读边处理,不一次性加载进内存。
- 文件对象本身可迭代,直接for line in f:即可,每轮line自带\n
- 常用搭配:line.strip()去首尾空格和换行,if line.strip():跳过空行
示例:
with open('data.txt', encoding='utf-8') as f:
for line in f:
if line.strip(): # 跳过空行
print(line.strip())
用pathlib更现代、跨平台的写法
Python 3.4+ 推荐方式,路径操作更自然,尤其适合多层目录或动态拼接路径。
- Path('data.txt').read_text(encoding='utf-8')一行搞定读取,自动处理打开/关闭
- 支持/拼接路径,如Path('logs') / 'access.log',无需os.path.join
示例:
from pathlib import Path
content = Path('data.txt').read_text(encoding='utf-8')
基本上就这些。小文件图省事用read()或pathlib;要逐行处理优先用for循环;注意编码和空行,基本不会踩坑。










