Уведомления

Группа в Telegram: @pythonsu

#1 Март 26, 2008 15:59:28

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка больших текстовых файлов

Есть ли какие-нибудь специализированные инструменты для обработки очень больших текстовых файлов?
Я попытался “в лоб” сравнить два текстовых файла ~600 Мб каждый, чтобы выделить строки, которые есть в одном файле, но нет в другом:

hash = {}
file = open("C:\\Temp\\file1.csv")
for line in file:
    hash[line] = True
file.close()
file = open("C:\\Temp\\file2.csv")
resfile = open("C:\\Temp\\cmp.csv", "wb")
for line in file:
    if not line in hash:
        resfile.write(line)
file.close()
resfile.close()
Подождал 2,5 часа - надоело.
Возможно, я криво написал код. Если так - поправьте, пожалуйста.
ActivePython 2.5 под WinXP. Или может, какой-нибудь awk под windows можно использовать?



Офлайн

#2 Март 26, 2008 17:46:49

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработка больших текстовых файлов

Эти данные можно загнать в какую-нибудь бд и там уже выполнить выборку необходимых данных или на крайний случай в бд можно складывать хэши строк из 1го файла, а то оно очень много памяти может захавать.



Офлайн

#3 Март 26, 2008 17:53:36

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Обработка больших текстовых файлов

import difflib
help(difflib)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version