@leham1

Как исправить ошибку памяти в openpyxl возникшую при ws.insert_rows(2246)?

Здравствуйте.

Есть файл xlsx. 190 КБ. Около 3000 строк и 10 столбцов. в нем формулы и значения. В нем возникает эта ошибка. (В другом меньшем файле делал это без ошибок)

При создании новой строки ws.insert_rows(2246) скрипт зависает где-то на минуту, потом выдает эту ошибку:

:: Exception occurred
Traceback (most recent call last):
  File "C:/YandexDisk/бизнес/Python/proverkaSoobchenii/remove_placmant_ads.py", line 27, in remove_placemant_ads
    replacement_ads1(product_and_site=q2, account_category_is_phones_in_youla_f2=account_category_is_phones_in_youla_f2, category_limit_for_game_telephone_in_youla_f2=category_limit_for_game_telephone_in_youla_f2)
  File "C:\YandexDisk\бизнес\Python\proverkaSoobchenii\placemant_ads.py", line 246, in replacement_ads1
    ws.insert_rows(2246)
  File "C:\Users\первый\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\worksheet.py", line 694, in insert_rows
    self._move_cells(min_row=idx, offset=amount, row_or_col="row")
  File "C:\Users\первый\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\worksheet.py", line 679, in _move_cells
    cells = list(cells)
  File "C:\Users\первый\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\worksheet.py", line 445, in _cells_by_row
    yield tuple(cells)
  File "C:\Users\первый\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\worksheet.py", line 441, in <genexpr>
    cells = (self.cell(row=row, column=column) for column in range(min_col, max_col + 1))
  File "C:\Users\первый\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\worksheet.py", line 238, in cell
    cell = self._get_cell(row, column)
  File "C:\Users\первый\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\worksheet.py", line 253, in _get_cell
    self._add_cell(cell)
  File "C:\Users\первый\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\worksheet.py", line 264, in _add_cell
    self._cells[(row, column)] = cell
MemoryError


Подскажите пожалуйста как можно избавиться от этой ошибки?
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
Viji
@Viji
DevOps Engineer
А если попробовать сохранять Excel file, после записи каждых 1000 rows, а потом закрывать и переоткрывать Excel workbook?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект