我目前正在尝试在一个非常大的.txt文件上使用一些简单的正则表达式(几百万行文本)。导致问题的最简单的代码:
from .settings_secret import *
错误消息:
file = open("exampleFileName", "r")
for line in file:
pass
我该如何解决这个问题?是utf-8错误的编码?如果是的话,我怎么知道哪一个是对的?
谢谢和最诚挚的问候!
答案 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。