Python Openpyxl не хватает памяти во время операции чтения и записи - PullRequest
0 голосов
/ 06 ноября 2019

У меня большой файл xl (45 МБ: 15 листов, каждый из которых содержит ровно 7 столбцов и 65536 строк). Я пытаюсь добавить все данные из этих 15 листов в один лист на отдельной рабочей тетради. Я использую read_only = True для базового листа xl и write_only = True для рабочей книги, в которую нужно записать.

Проблема, с которой я сталкиваюсь, заключается в том, что после обработки кода на 11 листах (проверьте код ниже) выдается ошибка нехватки памяти:

Готово с листа [9] Готовос листом [10] MemoryError

Используя код ниже:

import openpyxl as xl
wb1 = xl.load_workbook(path,read_only=True)
wb2 = xl.Workbook(write_only=True)
wb2_ws1=wb2.create_sheet()
sheets = wb1.sheetnames

print("Combine function read only")
for j in range(len(sheets)):

    for row in wb1[sheets[j]].iter_rows(min_row=2 if j != 0 else 1,max_row=wb1[sheets[j]].max_row, min_col=None, max_col=None,values_only=False):
        wb2_ws1.append(cell.value for cell in row)
    print("Done with sheet[",j,"]")

wb2.save(dest_filename)

Есть предложения о том, как заставить это работать?

1 Ответ

0 голосов
/ 06 ноября 2019

У вас установлен lxml? - Чарли Кларк 57 минут назад

@ CharlieClark - установка lxml сработала. - Вишвеш Шаубал только сейчас Править

...