2017-10-24 9 views
0

나는 다음과 같은 오류를 얻고있다

import os 
f = open("/Volumes/aj/VLP16_Points_2017-10-24-11-21-21.bag", 'r') 
print (f.read()) 
f.close() 

.bag 파일에서 데이터를 읽을 수있는 다음 코드를 수행 한

Traceback (most recent call last): 
    File "/Users/ajinkyabobade/PycharmProjects/storingfiles/storingimage.py", line 11, in <module> 
    print (f.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 0x88 in position 33: invalid start byte 

어떻게이 오류를 제거합니까? 또한 데이터 런타임을 저장하려면 어떻게해야합니까? (가방 파일이 생성되는 동안)

답변

1

파이썬 3에서 open()은 적절한 인코딩을 선택하기 위해 환경을 사용합니다. 당신이 확인하는 경우에 (파일이 아닌 UTF-8로 인코딩 된 경우), UTF-8로 인코딩 된 해당 파일 당신은

with open('/path/to/file', 'r', error='ignore') as f: 
    print(f.read()) 

으로 잘못된 바이트 순서를 무시할 수 또는 당신은 바로 인코딩을 선택 할 수

with open('/path/to/file', 'r', encoding='needed_encoding') as f: 
    print(f.read()) 

또한 open 내장 문서는 useful 일 수 있습니다.

+0

감사합니다. 내 가방 파일에 어떤 인코딩 유형이 있습니까? –

+0

@Ajinkya Bobade Linux를 사용하는 경우'file --mime filename'을 시도하십시오. – kvorobiev

+0

MacOS를 사용하고 있습니다. –