1
주파수에 대한 일련의 암호를 분석하려고합니다. 내 스크립트는 다른 입력 미디어와 함께 작동하지만 현재 데이터 세트에 잘못된 문자가있는 것 같습니다. "불량"데이터를 어떻게 해결할 수 있습니까?문자열 처리 오류 : UnicodeDecodeError : 'utf8'코덱을 디코딩 할 수 없습니다.
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 형식으로 다시 저장 한 다음 작동했습니다. 도와 주셔서 감사합니다! – AlphaTested
@AlphaTested 인코딩을 모르는 경우에는 [chardet] (http://pypi.python.org/pypi/chardet)을 사용하여 인코딩을 검색하는 방법이 있습니다. – agf
아, 알겠습니다. 감사. – AlphaTested