字符串处理错误:unicodedecoderror:“utf8”编码解码器无法解码

2024-05-13 11:59:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在分析一系列密码的频率。我的脚本正在处理其他输入媒体,但是当前数据集中似乎有一些错误字符。我怎样才能避开“坏”数据?

import re
import collections 
words = re.findall('\w+', open('rockyou.txt').read().lower())
a=collections.Counter(words).most_common(50)
for word in a:
     print(word)

然后我得到错误:

Traceback (most recent call last):
  File "shakecount.py", line 3, in <module>
    words = re.findall('\w+', open('rockyou.txt').read().lower().ASCII)
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/codecs.py", line 300, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xf1 in position 5079963: invalid continuation byte

有什么想法吗?


Tags: 数据inimportretxtmostread错误
1条回答
网友
1楼 · 发布于 2024-05-13 11:59:08

你的代码与你的错误不完全匹配(我假设你试着调试?),但您的文本文件不是UTF-8

您需要手动指定编码,我的最佳猜测是latin-1

words = re.findall('\w+', open('rockyou.txt', encoding='latin-1').read().lower())

如果您想在出现错误的情况下继续,可以将errors='ignore'errors='replace'传递给open

相关问题 更多 >