Python: чтение всех строк текстового файла в цикле

Я хочу прочитать огромный текстовый файл по строкам (и остановится, если найдена строка с «str»). Как проверить, достигнут ли файл?

fn = 't.log' f = open(fn, 'r') while not _is_eof(f): ## how to check that end is reached? s = f.readline() print s if "str" in s: break 

  • Удаление файлов с помощью python через оболочку ОС
  • Как узнать, находится ли файл в `eof`?
  • проверить, какие файлы открыты в Python
  • Как выполнить модульное тестирование функций, записывающих файлы, используя python unittest
  • Получить строку Номер определенной фразы в файле Python
  • как добавить строки в существующий файл с помощью python
  • Как установить внешние библиотеки с помощью Portable Python?
  • Как использовать sklearn CountVectorizer с анализатором «word» и «char»? - python
  • Включить URL-адреса Django в документацию Sphinx?
  • python dict update diff
  • Веб-страница Cant Scrape с библиотекой запросов Python
  • Как передать параметры в on_key в fig.canvas.mpl_connect ('key_press_event', on_key)?
  • 3 Solutions collect form web for “Python: чтение всех строк текстового файла в цикле”

    Нет необходимости проверять EOF на python, просто выполните:

     with open('t.ini') as f: for line in f: print line if 'str' in line: break 

    Почему заявление с :

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

    Просто перебирайте каждую строку в файле. Python автоматически проверяет конец файла и закрывает файл для вас (используя синтаксис with синтаксисом).

     with open('fileName', 'r') as f: for line in f: if 'str' in line: break 

    Бывают ситуации, когда вы не можете использовать (довольно убедительную) структуру with... for... В этом случае выполните следующие действия:

     line = self.fo.readline() if len(line) != 0: if 'str' in line: break 

    Это будет работать, потому что readline() оставляет конечный символ новой строки, где EOF – это просто пустая строка.

    Python - лучший язык программирования в мире.