python3上的UnicodeDecodeError

时间:2016-08-17 16:15:57

标签: python regex utf-8 decoding

我目前正在尝试在一个非常大的.txt文件上使用一些简单的正则表达式(几百万行文本)。导致问题的最简单的代码:

from .settings_secret import *

错误消息:

file = open("exampleFileName", "r")  
    for line in file:  
        pass

我该如何解决这个问题?是utf-8错误的编码?如果是的话,我怎么知道哪一个是对的?

谢谢和最诚挚的问候!

2 个答案:

答案 0 :(得分:7)

看起来它是无效的UTF-8,您应该尝试使用latin-1编码进行阅读。尝试

file = open('exampleFileName', 'r', encoding='latin-1') 

答案 1 :(得分:0)

无法动态识别编码。所以,无论是用户使用的方法,我写的评论或使用类似的结构(如另一个答案所提出的),但这是一个疯狂的镜头:

try:
    file = open("exampleFileName", "r")
except UnicodeDecodeError:
    try:
        file = open("exampleFileName", "r", encoding="latin2")
    except: #...

依此类推,直到你从Standard Python Encodings测试所有编码。

所以我认为没有必要为这个嵌套的地狱而烦恼,只需要file -bi [filename]一次,复制编码并忘记这一点。

UPD。实际上,如果您使用的是 Windows ,我会找到another stackoverflow answer

相关问题