#python #excel #pandas #import #encoding
Вопрос:
Я ищу, чтобы импортировать кэш файлов .xlsx из локальной папки. Этот тип импорта «одного окна» работал и раньше с новыми книгами Excel, но этот текущий кэш состоит из больших книг ( 4 МБ) с 2020 года.
Когда я использую следующий код, я получаю следующее сообщение об ошибке: BadZipFile: Файл не является zip-файлом.
Однако ни один из файлов не является zip-файлами. Может ли это быть проблемой с кодировкой?
path = os.getcwd()
files = os.listdir(path)
files
files_xls2 = [f for f in files if f[-14:] == '2020_File.xlsx']
files_xls2
sheet_name2 = '6 Commodities-A'
df2 = pd.DataFrame()
for f in files_xls2:
data2 = pd.read_excel(f, sheet_name2, engine='openpyxl')
Комментарии:
1. Этот приведенный выше код работает для новых книг Excel (выпущенных в 2021 году), но не для старых. Что касается внешних подключений, будет ли тогда проблемой удалять их книгу за книгой до того, как произойдет импорт?
Ответ №1:
xlsx
файлы действительно являются заархивированными XML-файлами. Ваша ошибка предполагает, что ваш файл может быть поврежден или не является допустимым файлом xlsx.
Комментарии:
1. Спасибо. Все они являются файлами .xlsx, но насколько они повреждены, я не уверен. Все они, кажется, открываются без проблем. Однако внутри них есть много связей, например, с PowerBI. Не уверен, что это может им помешать.
Ответ №2:
Pandas не работает с внешними подключениями, что может быть причиной повреждения ваших файлов, как вы сами упомянули.