python - 字符串处理错误 : UnicodeDecodeError: 'utf8' codec can't decode

标签 python python-3.x

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

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

有什么想法吗?

最佳答案

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

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

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

如果出现错误仍想继续,可以将 errors='ignore'errors='replace' 传递给 open

关于python - 字符串处理错误 : UnicodeDecodeError: 'utf8' codec can't decode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10114146/

相关文章:

python - 如何使用 tkinter 显示函数调用的输出?

python - 函数返回输出 'None'

Python 3 - 将变量导入字典

python - 如何使用 Python 向 Twilio API 提供代理信息

python - 尝试使用字典和 map 转换包含特定文本的行时遇到问题

python - 使用 Python 从 XML 中提取值

Python:修改pandas dataframe中的json类型列

Django JSONResponse 返回一个字符串而不是 JSON

python - (Python)如何从一个列表中创建一个字典,将第二个列表中的值指定为它的键?

python - 如何在 python 中将一个列表的异构列表展平为一个列表?