Найти - Пользователи
Полная версия: Работа с большими файлами XLS
Начало » Python для новичков » Работа с большими файлами XLS
1 2
tibs
Задача такая. Дан исходный файл на 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') #здесь висим
И еще один маленький вопрос: Как задать формат для записываемых ячеек Текстовый?
o7412369815963
Я считаю что xls для этого не предназначен, такие объемы нужно хранить в бд, хотя бы sqlite, при этом такой вопрос не возникнет.

в текущей ситуации можно попробовать работать через ole/com (если ось - винда),
если это разовый случай, то можно сохранить в csv, а в excel преобразовать обратно, если нужно.
tibs
o7412369815963, ole/com - подскажите, пожалуйста, где почитать. Я с этим не сталкивался.
Преобразование csv/xls делать вручную? Я спарсил эту БД и в тот момент она сохранилась. А вот сейчас при попытке ее обработки все просто висит.
o7412369815963
tibs
o7412369815963, ole/com - подскажите, пожалуйста, где почитать. Я с этим не сталкивался.
Преобразование csv/xls делать вручную? Я спарсил эту БД и в тот момент она сохранилась. А вот сейчас при попытке ее обработки все просто висит.
1) см. pywin32
2) нужно определиться с целью, что должно быть в итоге? какие “глобальную” задачу нужно решить?
tibs
2) Глобальная задача такова: Необходимо обновлять эту БД. Т.е. если найденной организации нет в БД, надо в нее дописать, а у тех которые были - просто обновить время (поле такое).
o7412369815963
как потом эта БД используется? выгрузка куда-то идет или её кто-то смотрит?
tibs
o7412369815963
как потом эта БД используется? выгрузка куда-то идет или её кто-то смотрит?
Она скорее для личного пользования. Вряд ли будет выгрузка, есть ведь сайт с этой всей базой.
o7412369815963
Может тогда сразу работать с базой сайта, добавить туда колонку “дата изменения” при изменении строки, поле обновлять?
tibs
o7412369815963
Может тогда сразу работать с базой сайта, добавить туда колонку “дата изменения” при изменении строки, поле обновлять?
Сайт ведь чужой, с него просто содрана база.
s0rg
что бы имеете в виду под ‘содрана’?
я с трудом представляю себе сайт у которого в качестве бд используеться xls.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB