编解码器无法解码字节 0x81

codec can't decode byte 0x81

我有一段简单的代码:

file = open(filename, "r", encoding="utf-8")
num_lines = sum(1 for line in open(filename))

我只想获取文件中的行数。但是我不断收到此错误。我正在考虑跳过 Python 并在 C# 中完成它 ;-)

有人可以帮忙吗?我在搜索错误后添加了 'utf-8' 并阅读它应该修复它。该文件只是一个简单的文本文件,而不是图像。虽然文件很大。它实际上是一个 CSV 字符串,但我只想在开始处理之前了解行数。

非常感谢。

in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 4344: 
character maps to <undefined>

好像是编码问题。
在您的示例代码中,您打开文件两次,第二次不包含编码。
试试下面的代码:

file = open(filename, "r", encoding="utf-8")
num_lines = sum(1 for line in file)

或(最近):

with open(filename, "r", encoding="utf-8") as file:
    num_lines = sum(1 for line in file)