@Reroun

Как обработать большой текстовый файл?

Помогите! допустим, у меня есть текстовый файл на 3 106 666 666 строк, как пройтись по элементам?я пробовал сначала открыть с помощью
file = open("sus.txt", "r", encoding='utf-8')
file = open("sus.txt", "r", encoding='utf-8')

n = 0

a = []

r = 0

for line in file:
    n += 1
    a.append(line)
    if n == 500:
        r += 1
        q = open(str(r), 'w+', encoding='utf-8')
        q.writelines(a)
        a = []
        q.close()
        n = 0


но сохранялось все в 5 файлов весом примерно 1,5 гб, хотя исходный был 222 гб
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Зачем ты складываешь строки в список? Почему не писать их сразу в выходной файл?
with open("sus.txt", "r", encoding='utf-8') as source:
    idx = 1  # номер файла-приёмника
    go = True
    while go:
        with open(f'part{idx}.txt', 'w', encoding='utf-8') as dest:
            for _ in range(500):  # не более 500 строк в каждый файл
                line = source.readline()
                if not line:  # пустая строка = конец файла
                    go = False
                    break
                dest.write(line)
        idx += 1
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы