Как прочитать определенную строку в файле python

от admin

Чтение с файла с определённой строки

У меня есть текстовый файл и мне нужно считать всю информацию, которая расположена после 25-й строки.

Как это сделать? Пожалуйста, помогите!

Если небольшой файл, можно список строк получить и отбросить первые 25:

Если файл большой, то чтобы не читать его весь сразу, можно воспользоваться тем что file является итератором на строками, разделёнными «\n»:

в этом случае lines не список, а итератор возвращающий строки из файла при его обходе, начиная с 26-ой строки, где file = open(filename) .

Например, можно сделать так:

если исключительно считать, а не вывести, то вместо последней строки x=line

Чтение текстового файла в Python

В следующей программе в Python мы откроем файл sample.txt в режиме чтения. Мы прочитаем все содержимое текстового файла и выведем текст на консоль.

Вы можете указать полный или абсолютный путь к методу open() или указать относительный путь, если базовый путь присутствует в переменной среды PATH.

Пример 2: только чтение некоторых символов

Если вам нужно прочитать только определенное количество символов, скажем, количество символов N, присутствующее в начале файла, передайте N (число) в качестве аргумента метода read().

В следующей программе мы прочитаем первые 20 символов файла.

Функция read (20) вернула первые 20 символов из текстового файла.

Пример 3: чтение в текстовом режиме

Режимы чтения, записи и выполнения зависят от разрешений. В зависимости от характера контента существуют текстовые и двоичные файлы.

В следующем примере мы явно откроем файл в текстовом режиме, указав «t» вместе с режимом «r» для чтения.

Пример 4: построчное чтение

Чтобы прочитать текст построчно из файла, используйте функцию File.readline(), которая возвращает текущую строку и обновляет свой указатель на следующую строку. Итак, когда вы вызываете функцию readline() в следующий раз – возвращается следующая строка.

Помните, что readline() возвращает строку вместе с символом новой строки в конце строки, за исключением последней строки. Итак, если вам не нужен символ новой строки, вы можете использовать функцию strip(). Здесь есть одна загвоздка: если ваша строка содержит символы пробела в начале и в конце, и если вы используете strip(), вы потеряете эти символы пробела в строке.

В этом примере мы будем читать текстовый файл построчно.

В этом руководстве мы узнали, как читать текстовый файл в Python с помощью примеров программ.

Чтение файлов#

Посмотрим как считывать содержимое файлов, на примере файла r1.txt:

Метод read — считывает весь файл в одну строку.

Пример использования метода read :

При повторном чтении файла в 3 строке, отображается пустая строка. Так происходит из-за того, что при вызове метода read , считывается весь файл. И после того, как файл был считан, курсор остается в конце файла. Управлять положением курсора можно с помощью метода seek .

readline #

Построчно файл можно считать с помощью метода readline :

Читать:
Как округлить в гугл таблицах

Но чаще всего проще пройтись по объекту file в цикле, не используя методы read. :

readlines #

Еще один полезный метод — readlines . Он считывает строки файла в список:

Если нужно получить строки файла, но без перевода строки в конце, можно воспользоваться методом split и как разделитель, указать символ \n :

Обратите внимание, что последний элемент списка — пустая строка.

Если перед выполнением split , воспользоваться методом rstrip , список будет без пустой строки в конце:

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

Чтобы ещё раз считать информацию из файла, нужно воспользоваться методом seek , который перемещает курсор в необходимое положение.

Пример открытия файла и считывания содержимого:

Если вызывать ещё раз метод read , возвращается пустая строка:

Но с помощью метода seek можно перейти в начало файла (0 означает начало файла):

После того как с помощью seek курсор был переведен в начало файла, можно опять считывать содержимое:

Чтение только определенных строк (Python)

Я использую цикл for для чтения файла, но я хочу читать только определенные строки, скажем, строки #26 и #30. Есть ли встроенная функция для этого?

24 ответов:

если файл большой, и вы не хотите читать весь файл в память сразу:

отметим, что i == n-1 на n — й линии.

в Python 2.6 или более поздней версии:

  • использовать fileobject.readlines() или for line in fileobject как быстрое решение для небольших файлов.
  • использовать linecache для более элегантного решения, которое будет довольно быстро для чтения многих файлов, возможно неоднократно.
  • взять @советы Алока и использование enumerate() для файлов, которые могут быть очень большими и не помещаются в память. Обратите внимание, что использование этого метода может замедлиться, поскольку файл читается последовательно.

быстрый и компактный подход может быть:

это принимает любой открытый файловый объект thefile (оставляя до вызывающего ли он должен быть открыт из файла на диске, или через например сокет, или другой файловый поток) и набор нулевых индексов строки whatlines , и возвращает список, с низким объемом памяти и разумной скоростью. Если количество возвращаемых строк огромно, вы можете предпочесть генератор:

что в основном только хорошо для зацикливание на — обратите внимание, что единственное отличие заключается в использовании округленных, а не квадратных скобок в return заявление, делая понимание списка и выражение генератора соответственно.

далее отметим, что несмотря на упоминание «строк» и «файлов» этих функций очень много, много более общие — они будут работать на любой iterable, будь то открытый файл или любой другой, возвращающий список (или генератор) элементов на основе их прогрессивного номер позиции. Поэтому я бы предложил использовать более подходящие общие имена; -).

Похожие статьи