首页 > 解决方案 > 编解码器无法解码字节 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>

标签: pythoncodec

解决方案


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

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)

推荐阅读