2017-10-07 20 views
1

제품 데이터가 포함 된 문서를 읽고 특정 제품의 데이터를 인쇄하려고합니다. 문제는, 내가 그것을 오류없이 읽을 수없는 것 같습니다. 나는 단지 처음 100자를 인쇄하려고하는데, 그래서 내가 무엇을 구체적으로 인쇄해야하는지, 어떻게 파일에서 꺼내야하는지 알아낼 수있다. 그러나 나는 그것을 읽지 못하고있다. 문서는 UTF-8에있다. 그렇지 않으면 ... 나는 무엇을 놓치고 있는가? 역 추적 내가 얻을 여기에UnicodeDecodeError : 문서를 읽을 때 연속 바이트가 유효하지 않습니다.

products = open('products.csv') 
productsread = products.read() 
print(productsread[:100]) 

그리고 :

Traceback (most recent call last): 
File "nilescratchpad.py", line 2, in <module> 
productsread = products.read() 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/codecs.py", line 321, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 7451: invalid continuation byte 
+0

문서를 읽고 UTF-8 코덱에서 오류가 발생하면 UTF-8이 아니거나 적어도 오류가 있습니다. 'open ('products.csv', errors = 'replace')'시도해 볼 수 있습니다. –

+0

어딘가에 오류가있었습니다. 그게 효과가! 정말 고마워! 호기심에서 벗어나, 그 오류를 대체하는 것은 무엇입니까? – pinkpython

답변

0

문서를 읽고는 UTF-8 코덱에서 오류가 발생하면, 그것을 여기

내 코드입니다 UTF-8이 아니거나 최소한 오류가 있습니다. open('products.csv',encoding='utf8',errors='replace')은 모든 오류를 유니 코드 코드 포인트 U+FFFD REPLACEMENT CHARACTER으로 바꿉니다. 실제로 문서의 대부분이 UTF-8인지 확인하십시오.

+0

이 작품! 정말 고마워! 그것은 어딘가에 오류가 있었음에 틀림 없다. 왜냐하면 대부분의 문서가 UTF-8이고, 현재 표시되는 것이 의미가 있으며 제안을 한 후에 올바른 것이다. 정말 고마워! :) – pinkpython

+0

알았습니다! 이제 할거야! 나는 Stack Overflow와 Python에 익숙하지 않고 코딩을하고있다 ... 그래서 나는 투표가 나타날 때까지 15 가지의 평판을 얻어야한다. – pinkpython