Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

2.6K
Vistas
PANDAS & glob: no se puede determinar el formato de archivo de Excel, debe especificar un motor manualmente

No estoy seguro de por qué recibo este error, ¡aunque a veces mi código funciona bien!

Excel file format cannot be determined, you must specify an engine manually.

Aquí debajo está mi código con los pasos:

1- lista de columnas de identificación de clientes:

 customer_id = ["ID","customer_id","consumer_number","cus_id","client_ID"]

2- El código para encontrar todos los archivos xlsx en una carpeta y leerlos:

 l = [] #use a list and concat later, faster than append in the loop for f in glob.glob("./*.xlsx"): df = pd.read_excel(f).reindex(columns=customer_id).dropna(how='all', axis=1) df.columns = ["ID"] # to have only one column once concat l.append(df) all_data = pd.concat(l, ignore_index=True) # concat all data

Agregué el motor openpyxl

df = pd.read_excel(f, engine="openpyxl").reindex(columns = customer_id).dropna(how='all', axis=1)

Ahora tengo un error diferente:

 BadZipFile: File is not a zip file

versión de pandas: 1.3.0 versión de python: python3.9 sistema operativo: MacOS

¿Hay una mejor manera de leer todos los archivos xlsx de una carpeta?

over 4 years ago · Santiago Trujillo
7 Respuestas
Responde la pregunta

0

Lo encontré. Cuando MS Excel abre un archivo de Excel, por ejemplo, se crea un archivo temporal oculto en el mismo directorio:

 ~$datasheet.xlsx

Entonces, cuando ejecuto el código para leer todos los archivos de la carpeta, me da el error:

 Excel file format cannot be determined, you must specify an engine manually.

Cuando todos los archivos están cerrados y no hay archivos temporales ocultos ~$filename.xlsx en el mismo directorio, el código funciona perfectamente.

over 4 years ago · Santiago Trujillo Denunciar

0

También recibí un error de 'Formato de archivo de Excel...' cuando cambié manualmente el sufijo 'CSV' a 'XLS'. Todo lo que tenía que hacer era abrir Excel y guardarlo en el formato que quería.

over 4 years ago · Santiago Trujillo Denunciar

0

También asegúrese de estar usando el método pd.read_* correcto. Me encontré con este error al intentar abrir un archivo .csv con read_excel() en lugar de read_csv() . Encontré este práctico fragmento aquí para seleccionar automáticamente el método correcto por tipo de archivo de Excel.

 if file_extension == 'xlsx': df = pd.read_excel(file.read(), engine='openpyxl') elif file_extension == 'xls': df = pd.read_excel(file.read()) elif file_extension == 'csv': df = pd.read_csv(file.read())
over 4 years ago · Santiago Trujillo Denunciar

0

Parece una solución fácil para este. Vaya a su archivo de Excel, ya sea xls o xlsx o cualquier otra extensión, y haga "guardar como" desde el ícono del archivo. Cuando se le solicite con opciones. Guárdelo como CSV UTF-8 (delimitado por comas) (*.csv)

over 4 years ago · Santiago Trujillo Denunciar

0

https://stackoverflow.com/a/32241271/17411729

enlace a una respuesta sobre cómo eliminar archivos ocultos

Mac = ir a la carpeta, presione cmd + shift + . mostrará el archivo oculto, lo eliminará, lo ejecutará de nuevo.

over 4 years ago · Santiago Trujillo Denunciar

0

En macOS, se genera automáticamente un "archivo invisible" llamado ".DS_Store" en cada carpeta. Para mí, esta fue la fuente del problema. Resolví el problema con una declaración if para omitir el "archivo invisible" (que no es un xlsx, por lo que desencadenaría el error)

 for file in os.scandir(test_folder): filename = os.fsdecode(file) if '.DS_Store' not in filename: execute_function(file)
over 4 years ago · Santiago Trujillo Denunciar

0

En mi caso, usé xlrd . Así que en la terminal:

 pip install xlrd

Si pandas no está instalado, instálelo:

 pip install pandas

Ahora lea el archivo de Excel de esta manera:

 import pandas as pd df = pd.read_excel("filesFolder/excelFile.xls", engine='xlrd')
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda