Python 将文件内容读取为字符串的方法

使用open()或pathlib读取文件为字符串,小文件可用read()或Path.read_text(),大文件建议分块读取以避免内存溢出。

在 Python 中,将文件内容读取为字符串是一个常见操作。最直接的方式是使用内置的 open() 函数配合读取方法。以下是几种常用且有效的方法。

1. 使用 read() 读取整个文件

通过 read() 方法可以一次性将文件所有内容读取为一个字符串。

with open('example.txt', 'r', encoding='utf-8') as file:
    content = file.read()
print(content)

这种方法适合小到中等大小的文件。注意指定正确的编码(如 utf-8),避免出现乱码。

2. 按行读取并合并成字符串

如果希望逐行处理文件,但仍要得到一个完整字符串,可以使用 readlines() 或迭代文件对象。

with open('example.txt', 'r', encoding='utf-8') as file:
    lines = file.readlines()
content = ''.join(lines)

或者更简洁地:

with open('example.txt', 'r', encoding='utf-8') as file:
    content = ''.join(file)

这种方式在处理大文件时可控制内存使用,同时仍能获得字符串结果。

3. 处理大文件时分块读取

对于非常大的文件,不建议一次性读入内存。可以分块读取并拼接(或流式处理)。

content = ''
with open('large_file.txt', 'r', encoding='utf-8') as file:
    while chunk := file.read(4096):
        content += chunk

虽然拼接大量字符串效率较低,但若必须得到完整字符串,这种方式可以避免 MemoryError。

4. 使用 pathlib 简化操作(推荐现代写法)

Python 3.4+ 推荐使用 pathlib 模块,语法更简洁。

from pathlib import Path

content = Path('example.txt').read_text(encoding='utf-8')

一行代码完成打开和读取,自动处理文件关闭,代码更安全、清晰。

基本上就这些。选择哪种方式取决于文件大小、编码情况以及代码风格偏好。小文件用 read()Path.read_text() 最方便,大文件注意分块处理。