Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 9, 2010 14:21:11

nikk
От:
Зарегистрирован: 2010-11-09
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление строк из файла

Добрый день.
Нужно удалять произвольную строку из файла. Из текстового, как я понял, не получится, а если сделать двоичный файл, можно в нём удалить данные в определённой позиции?

Скопировать в память, удалить, записать в новый файл не предлагать. Файл - словарь, около 100 тыс. слов. И удаления нужно проводить часто, на разных итерациях. проще убиться об стену, чем постоянно копировать.

заранее спасибо.



Офлайн

#2 Ноя. 9, 2010 16:27:38

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Удаление строк из файла

Может быть имеет смысл загрузить словарь в память, его обработать и потом сохранить? Зачем каждый раз перезаписывать файл при удалении строки?

Может быть имеет смысл использовать базы данных? SQLite или key-value базы данны

100 тыс. слов это не такой уже и большой словарь.



Офлайн

#3 Ноя. 9, 2010 18:53:04

nikk
От:
Зарегистрирован: 2010-11-09
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление строк из файла

Вопрос в том, сколько этот словарь сожрёт памяти, будучи в неё загруженным? Проверю, посмотрим, что получится.



Офлайн

#4 Ноя. 9, 2010 19:07:37

nikk
От:
Зарегистрирован: 2010-11-09
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление строк из файла

Проверил. оказывается, не так и много памяти съедается, порядка 11 мешков. Тогда вопрос упрощается:
как удалить элемент с заданным номером из списка? Есть что-нибудь вроде spisok.delete(n)?



Офлайн

#5 Ноя. 9, 2010 19:24:06

grok
От:
Зарегистрирован: 2010-09-09
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление строк из файла

Может так:

l = ['a', 'q', 123, 'o', ['23', 4, 'k']]
del l[2]
print l
Результат:
['a', 'q', 'o', ['23', 4, 'k']]



Офлайн

#6 Ноя. 11, 2010 10:19:10

shupg
От:
Зарегистрирован: 2009-08-07
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление строк из файла

вопрос в трудоемкости данной операции для питона. O(n) устраивает автора?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version