Python读取含反斜杠的TXT文件遇UnicodeDecodeError问题求助
解决读取含特殊字符TXT文件的Unicode解码错误
你遇到的UnicodeDecodeError并非反斜杠导致,本质是文件编码与Python默认读取编码不匹配。Windows环境下Python默认使用系统charmap编码(如GBK),若文件采用UTF-8等其他编码,就会出现解码失败的问题。
以下是几种可行的解决方法:
指定正确编码读取(推荐):直接在
open()函数中明确文件编码,比如最常用的UTF-8:with open('test.txt', 'r', encoding='utf-8') as f: account_list = f.readlines()注:
with语句会自动关闭文件,无需手动调用f.close()。忽略无法解码的字符:如果不确定文件编码,且允许丢弃少量乱码字符,可添加
errors='ignore'参数跳过错误:with open('test.txt', 'r', errors='ignore') as f: account_list = f.readlines()自动尝试多种编码:若不清楚文件具体编码,可依次尝试常见编码(如UTF-8、GBK、GB2312):
encodings = ['utf-8', 'gbk', 'gb2312'] account_list = [] for enc in encodings: try: with open('test.txt', 'r', encoding=enc) as f: account_list = f.readlines() break except UnicodeDecodeError: continue
关于反斜杠:文件中的反斜杠属于普通字符,readlines()会正常读取,不会引发解码错误。如果文件中存在转义格式的反斜杠(比如表示路径的\\),读取后可根据需求手动处理,无需额外修改读取逻辑。
内容的提问来源于stack exchange,提问作者段云鹏
相关产品推荐
相关产品推荐

