Python实用方法之读取txt文件

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

读取txt文件是Python中最基础也最常用的操作之一,关键在于选对方法、注意编码和换行处理。

open()配合read()一次性读取全部内容

适合小到中等大小的文本文件(比如日志、配置、短篇文章),代码简洁直观。

  • 默认以文本模式打开,需指定encoding参数避免中文乱码,推荐encoding='utf-8'
  • read()返回整个字符串,含换行符\nread().strip()可去掉首尾空白(包括换行)
  • 记得用with语句自动关闭文件,防止资源泄露

示例:

with open('data.txt', encoding='utf-8') as f:
    content = f.read().strip()
print(content)

readlines()按行读取为列表

适合需要逐行处理、但又想一次性加载全部行的场景,比如统计行数、筛选特定行。

  • 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循环;注意编码和空行,基本不会踩坑。