Estoy interesado en que este script abra un archivo de Excel y lo guarde nuevamente como un archivo .csv o .txt. Estoy bastante seguro de que el problema con esto es la iteración: no lo he codificado correctamente para iterar correctamente sobre el contenido de la carpeta. Soy nuevo en Python, y logré obtener este código para imprimir con éxito una copia del contenido de los elementos en la carpeta por la parte comentada. ¿Alguien puede aconsejar lo que hay que arreglar?

Mi error es: elevar XLRDError ('Formato no compatible o archivo dañado:' + msg)

from xlrd import open_workbook
import csv
import glob
import os
import openpyxl

cwd= os.getcwd()
print (cwd)

FileList = glob.glob('*.xlsx')
#print(FileList)

for i in FileList:
    rb = open_workbook(i)
    wb = copy(rb)
    wb.save('new_document.csv')

1
Unicorn_tech 24 jun. 2020 a las 14:21

2 respuestas

La mejor respuesta

Yo solo usaría:

import pandas as pd
import glob
import os

file_list = glob.glob('*.xlsx')

for file in file_list:
    filename = os.path.split(file, )[1]
    pd.read_excel(file).to_csv(filename.replace('xlsx', 'csv'), index=False)
1
David Duarte 24 jun. 2020 a las 12:35

Parece que su error está relacionado con los archivos de Excel, no por su código.

  • Compruebe que sus archivos no estén también abiertos en Excel al mismo tiempo.
  • Comprueba que tus archivos no estén encriptados.
  • Verifique que su versión de xlrd sea compatible con los archivos que está leyendo

En el orden anterior. Cualquiera de los anteriores podría haber causado su error.

1
Leonis Supreme 24 jun. 2020 a las 13:17