Python xlrd formato no compatible, o archivo dañado.

Mi código:

import xlrd wb = xlrd.open_workbook("Z:\\Data\\Locates\\3.8 locates.xls") sh = wb.sheet_by_index(0) print sh.cell(0,0).value 

El error:

 Traceback (most recent call last): File "Z:\Wilson\tradedStockStatus.py", line 18, in  wb = xlrd.open_workbook("Z:\\Data\\Locates\\3.8 locates.xls") File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 429, in open_workbook biff_version = bk.getbof(XL_WORKBOOK_GLOBALS) File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 1545, in getbof bof_error('Expected BOF record; found %r' % self.mem[savpos:savpos+8]) File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 1539, in bof_error raise XLRDError('Unsupported format, or corrupt file: ' + msg) xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '<table r'" 

El archivo no parece estar dañado o en un formato diferente. Cualquier cosa que ayude a encontrar la fuente del problema sería genial.

Related of "Python xlrd formato no compatible, o archivo dañado."

Tu dices:

El archivo no parece estar dañado o en un formato diferente.

Sin embargo, como dice el mensaje de error, los primeros 8 bytes del archivo son '

... que definitivamente no es el formato Excel .xls . Ábralo con un editor de texto (p. Ej., Bloc de notas) que no notará la extensión (incorrecta) .xls y .xls usted mismo.

Intenta abrirlo con pandas:

 import pandas as pd data = pd.read_html('filename.xls') 

O pruebe con cualquier otro analizador de HTML Python.

Eso no es un archivo de Excel adecuado, pero un html legible con excel.

Tuve un problema similar y estaba relacionado con la versión. En una comprobación de terminal de python:

 >> import xlrd >> xlrd.__VERSION__ 

Si tiene ‘0.9.0’ puede abrir casi todos los archivos. Si tiene ‘0.6.0’ que fue lo que encontré en Ubuntu, puede tener problemas con los archivos de Excel más recientes. Puede descargar la última versión de xlrd utilizando el estándar Distutils.

Esto le sucederá a algunos archivos mientras se abre también en Excel.

Encontré un problema similar al descargar el archivo .xls y lo abrí usando la biblioteca xlrd. Luego probé la solución de convertir .xls en .xlsx como se detalla aquí: cómo convertir xls a xlsx

Funciona como un hechizo y, en lugar de abrir .xls, estoy trabajando con el archivo .xlsx ahora utilizando la biblioteca openpyxl.

Espero que te ayude a resolver tu problema.

En mi caso, después de abrir el archivo con un editor de texto como sugirió @ john-machin, me di cuenta de que el archivo no está cifrado, ya que se supone que debe hacerlo un archivo de Excel, pero está en formato CSV y se guardó como un archivo de Excel. Lo que hice fue renombrar el archivo y su extensión, y en read_csv lugar read_csv función read_csv :

 os.rename('sample_file.xls', 'sample_file.csv') csv = pd.read_csv("sample_file.csv", error_bad_lines=False) 

Acabo de descargar xlrd, creé un documento de Excel (Excel 2007) para la prueba y obtuve el mismo error (el mensaje dice “encontrado PK \ x03 \ x04 \ x14 \ x00 \ x06 \ x00”). La extensión es un xlsx. Intenté guardarlo en un formato .xls anterior y el error desaparece …

Me encuentro con el mismo problema.

se encuentra en el archivo .xls en sí, parece un archivo de Excel, pero no lo es. (ver si hay una ventana emergente cuando abres claramente los .xls desde Excel)

sjmachin comentó el 19 de enero de 2013 de https://github.com/python-excel/xlrd/issues/26 ayuda.

También encontré este problema. Abrí este archivo por Excel y lo guardé en otros formatos como Excel 97-2003 y finalmente resolví este problema.

Tuve el mismo problema. Esos archivos antiguos están formateados como un archivo delimitado por tabulaciones. He podido abrir mis archivos de problemas con read_table ; es decir, df = pd.read_table('trouble_maker.xls') .

no hay nada malo con tu archivo xlrd aún no admite archivos xlsx (excel 2007+), aunque se supone que ha soportado esto por algún tiempo.

Simplistix github

Hace 2 días se comprometió una versión pre-alfa para su git que integra el soporte xlsx. Otros foros sugieren que utilice un analizador DOM para los archivos xlsx, ya que el tipo de archivo xlsx es solo un archivo zip que contiene XML. No he intentado esto. hay otro paquete con una funcionalidad similar a xlrd y esto se llama openpyxl que puede obtener de easy_install o pip. No he intentado esto tampoco, sin embargo, su API se supone que es similar a xlrd.