Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

2.6K
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório

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 Relatório

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda