2014-02-10 3 views
0

xlrd 라이브러리를 사용하여 매우 많은 수의 .DTA 파일을 구성하려고합니다.파일 확장자 변경과 관련된 python xlrd 오류

내가 처음 발견 한 사실은 .DTA 파일을 확장명 .xls를 변경하고 Excel에서 열면 파일을 Excel로 내보낼 수 있다는 것입니다. 열 때 경고 메시지가 나타나 손상된 파일에 대한 오류가 발생하지만 그렇지 않은 경우 정상적으로 열립니다.

the file you are trying to open is in a different format than specified by the file extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open the file now?

내가 파일을 열려고하면 Python으로하지만, 내가 할 모든 내가 파일 확장자 문제로 인해 발생 확신 전혀 도움이 정보에 오류가 있습니다.

File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 1323, in getbof raise XLRDError('Expected BOF record; found 0x%04x' % opcode) XLRDError: Expected BOF record; found 0x5845

나는 절단 및 붙여 넣기 데이터를 새 Excel 파일에 그것에게 같은 일을 이름으로 내 코드를 시도하고 일했다, 그래서 나는이 문제입니다 확신 해요,하지만 난 너무 많은이 파일을 하나씩 개별적으로 처리 할 수 ​​있습니다.

이 문제를 해결하는 더 좋은 방법이 있습니까? 오류를 보완하거나 파일 확장자를 변경하는 대신 파일 형식을 실제로 변경 하시겠습니까?

+0

파일을 텍스트 편집기로 열어서 보이는 첫 번째 문자가 다른 이름으로 파일을 저장할 때까지 모두 지운 다음 Excel로 다시 열 수 있습니다. 그러면 Python으로 경고가 표시되지 않습니다. 우리는 문제의 이름을 기억하면 대답을 쓰겠지만 실제로는 읽기만 사용하고 첫 번째 문자 인 mystring = open (file) .read(), mystring = mystring [1 :]을 모두 사용합니다. – PyNEwbie

+0

나는 수백 개의 파일을 정렬해야하는데 수동으로 변경하는 것은 옵션이 아닙니다. – Ahmed

+0

파일을 쉽게 바꿀 수 있는지 여부를 확인하기 위해 하나만 수행하십시오. - 내 설명을 신중하게 읽으십시오. – PyNEwbie

답변

0

파일 시작 부분에 관찰 할 수는 있지만 존재하는 Byte Order Mark가 있다고 생각합니다. 이 답변은 그것을 제거하는 방법을 설명합니다 < converting utf-16 -> utf-8 AND remove BOM>.

+0

이 코드를 어떻게 사용하는지 잘 모르겠습니다. dest_file 등 ("B + w 'target_file_name)와 오픈 : source_file 오픈 (ff_name'RB ')와 '' 내용 source_file.read =() dest_file.write (contents.decode ('utf-16') . ''' 나는'ff_name'''을 내가 읽고있는 파일로 바꿨고'target_file_name'을 파일로 바꿨다. 쓰기 및 코드가 실행되었지만 여전히 오류가 발생했습니다. 이 권리를 사용 했습니까? – Ahmed

+0

코드를 볼 수 있도록 코드를 답안에 붙여 넣는 것이 좋습니다. 더 중요한 것은 오류 메시지를 붙여 넣는 것입니다. – PyNEwbie

관련 문제