Извлечение данных из очень большого текстового файла с использованием Python и панд?

Если я знаю, что окончание строк должно быть одним из CRLF или LF, то что-то, что работает для меня, это

myStr.Replace("\r?\n", "\r\n");

Это по сути делает тот же ответ neslekkiM , за исключением он выполняет только одну операцию замены на строке, а не на две. Это также совместимо с двигателями Regex, которые не поддерживают отрицательные обратные ссылки или обратные ссылки.

0
задан pasei 28 February 2019 в 17:41
поделиться

2 ответа

Вы должны использовать генераторы Python. Кроме того, печать замедляет процесс.

Ниже приведено несколько примеров использования генераторов:

Генератор Python для чтения больших файлов CSV

Ленивый метод для чтения больших файлов в Python? [111 ]

0
ответ дан Bradia 28 February 2019 в 17:41
поделиться

readlines перебирает весь файл. Затем вы перебираете результат из readlines. Я думаю, что следующее редактирование сэкономит вам одну итерацию большого файла.

write = True
first_time = True

with open(file_to_copy) as f, open(output, "w") as newf:
    for line in f:
      if first_time == True:
          if stop in line:
              first_time = False
              write = False
              for i in range(300):
                  newf.write(
                  '\n  -------------------- MIDDLE OF THE FILE -------------------')
              print('\n\n')
      if restart in line: write = True
      if write: newf.write(line)
print('Done.')
0
ответ дан Charles Landau 28 February 2019 в 17:41
поделиться
Другие вопросы по тегам:

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