Python读取中文TXT文件的核心方法是使用open()
函数并明确指定encoding='utf-8'
参数,确保正确处理中文字符。关键步骤包括:文件路径指定、编码设置、内容读取方式选择(逐行或全部)以及异常处理。以下是具体实现方法和注意事项:
-
基础读取方法
使用with open()
语句自动管理文件资源,避免手动关闭遗漏。示例代码:python复制
with open('file.txt', 'r', encoding='utf-8') as file: content = file.read() # 一次性读取全部内容
若需逐行处理,可用
for line in file
循环或readlines()
方法。 -
编码问题解决
- UTF-8为首选编码:覆盖绝大多数中文场景。若文件为GBK编码,需替换为
encoding='gbk'
。 - 编码检测:对未知编码文件,可用
chardet
库自动检测:python复制
import chardet with open('file.txt', 'rb') as f: raw_data = f.read() encoding = chardet.detect(raw_data)['encoding']
- UTF-8为首选编码:覆盖绝大多数中文场景。若文件为GBK编码,需替换为
-
异常处理与兼容性
- 捕获
UnicodeDecodeError
并尝试备用编码(如GBK、ISO-8859-1)。 - 处理BOM头:UTF-8编码文件可能包含BOM标记,使用
encoding='utf-8-sig'
自动忽略。
- 捕获
-
大文件优化
超大文件建议逐行读取或分块处理,避免内存溢出:python复制
with open('large_file.txt', 'r', encoding='utf-8') as file: for line in file: process(line) # 逐行处理
总结:Python读取中文TXT文件的核心在于正确指定编码和合理选择读取方式。遇到乱码时优先检查文件实际编码,并通过异常处理增强代码鲁棒性。对于批量操作或特殊需求(如编码转换),可结合os
模块和pandas
等库扩展功能。