Форум сайта python.su
Задача такая. Дан исходный файл на 200 000 строк и 50 столбцов. Надо в каких-то ячейках произвести изменение результата. Пытался сделать это, но при сохранение python зависает и в конце концов выдает memory error. Как правильно обрабатывать большие xls-файлы (сама база занимает 206 Мб)?
Код примерно такой:
from xlrd import open_workbook
from xlutils.copy import copy
rb=open_workbook('all.xls',on_demand=True)
wb = copy(rb)
# обработка
wb.get_sheet(0).write(10,10,'changed!')
wb.save('2.xls') #здесь висим
Офлайн
Я считаю что xls для этого не предназначен, такие объемы нужно хранить в бд, хотя бы sqlite, при этом такой вопрос не возникнет.
в текущей ситуации можно попробовать работать через ole/com (если ось - винда),
если это разовый случай, то можно сохранить в csv, а в excel преобразовать обратно, если нужно.
Офлайн
o7412369815963, ole/com - подскажите, пожалуйста, где почитать. Я с этим не сталкивался.
Преобразование csv/xls делать вручную? Я спарсил эту БД и в тот момент она сохранилась. А вот сейчас при попытке ее обработки все просто висит.
Офлайн
tibs1) см. pywin32
o7412369815963, ole/com - подскажите, пожалуйста, где почитать. Я с этим не сталкивался.
Преобразование csv/xls делать вручную? Я спарсил эту БД и в тот момент она сохранилась. А вот сейчас при попытке ее обработки все просто висит.
Офлайн
2) Глобальная задача такова: Необходимо обновлять эту БД. Т.е. если найденной организации нет в БД, надо в нее дописать, а у тех которые были - просто обновить время (поле такое).
Офлайн
как потом эта БД используется? выгрузка куда-то идет или её кто-то смотрит?
Офлайн
o7412369815963Она скорее для личного пользования. Вряд ли будет выгрузка, есть ведь сайт с этой всей базой.
как потом эта БД используется? выгрузка куда-то идет или её кто-то смотрит?
Отредактировано (Янв. 29, 2012 11:28:05)
Офлайн
Может тогда сразу работать с базой сайта, добавить туда колонку “дата изменения” при изменении строки, поле обновлять?
Офлайн
o7412369815963Сайт ведь чужой, с него просто содрана база.
Может тогда сразу работать с базой сайта, добавить туда колонку “дата изменения” при изменении строки, поле обновлять?
Офлайн
что бы имеете в виду под ‘содрана’?
я с трудом представляю себе сайт у которого в качестве бд используеться xls.
Офлайн