Python编解码器可以';t解码字节0x81

Python编解码器可以';t解码字节0x81,python,Python,我有一段简单的代码: file = open(filename, "r", encoding="utf-8") num_lines = sum(1 for line in open(filename)) 我只想得到文件中的行数。然而,我不断得到这个错误。我正在考虑跳过Python,用C语言来实现它 有人能帮忙吗?我在搜索错误并读取后添加了“utf-8”,应该可以修复它。该文件只是一个简单的文本文件,而不是图像。尽管文件很大。它实际上是一个CSV字符串,但我只想在开始处理它之前知道行数 非常感谢

我有一段简单的代码:

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>
解码中的

返回编解码器.charmap\u解码(输入、自身错误、解码表)[0]
UnicodeDecodeError:“charmap”编解码器无法解码位置4344中的字节0x81:
字符映射到

这似乎是一个编码问题。
在您的示例代码中,您打开了两次文件,第二次不包括编码。
请尝试以下代码:

file = open(filename, "r", encoding="utf-8")
num_lines = sum(1 for line in file)
或(最近的):


这似乎是一个编码问题。
在您的示例代码中,您打开了两次文件,第二次不包括编码。
请尝试以下代码:

file = open(filename, "r", encoding="utf-8")
num_lines = sum(1 for line in file)
或(最近的):


在两行中有两个打开的语句。第一个用utf-8解码。第二种情况并非如此。也许你可以用更现代的“with…open(…encoding='utf-8')…作为f:“构造?啊,对不起,我从来没有意识到我的代码。我将它从一个循环改为现在看到的:)在两行中有两个open语句。第一个用utf-8解码。第二种情况并非如此。也许你可以用更现代的“with…open(…encoding='utf-8')…作为f:“构造?啊,对不起,我从来没有意识到我的代码。我将它从一个循环更改为您现在看到的:)谢谢,您是对的,我更改了代码,但没有意识到。顺便说一句,我以为Python3.x默认改为unicode?谢谢,你说得对,我更改了代码,但没有意识到。顺便说一句,我认为Python3.x默认改为unicode?