Python читает файл построчно

Обновлено: 03.07.2024

Вывод: в этом руководстве вы узнаете о различных способах чтения текстовых файлов в Python.

Ниже показано, как прочитать все тексты из файла readme.txt в строку:

Этапы чтения текстового файла в Python

Чтобы прочитать текстовый файл в Python, выполните следующие действия:

  • Сначала откройте текстовый файл для чтения с помощью функции open().
  • Во-вторых, прочитайте текст из текстового файла, используя метод read() , readline() или readlines() файлового объекта.
  • В-третьих, закройте файл с помощью метода file close().

1) функция open()

У функции open() много параметров, но вы сосредоточитесь на первых двух.

Параметр path_to_file указывает путь к текстовому файлу.

Если файл находится в той же папке, что и программа, нужно просто указать имя файла. В противном случае необходимо указать путь к файлу.

Чтобы указать путь к файлу, используйте косую черту ( '/' ), даже если вы работаете в Windows.

Например, если файл readme.txt хранится в папке с образцами в качестве программы, необходимо указать путь к файлу как c:/sample/readme.txt

Режим является необязательным параметром. Это строка, указывающая режим, в котором вы хотите открыть файл.

В следующей таблице показаны доступные режимы открытия текстового файла:

< td>Открыть текстовый файл для чтения текста
РежимОписание
'r'
'w' Открыть текстовый файл для записи текста
'a' Открыть текстовый файл для добавления текста

Например, чтобы открыть файл с именем the-zen-of-python.txt, хранящийся в той же папке, что и программа, используйте следующий код:

Функция open() возвращает файловый объект, который вы будете использовать для чтения текста из текстового файла.

2) Чтение текстовых методов

Объект файла предоставляет три метода чтения текста из текстового файла:

  • read() — прочитать весь текст из файла в строку. Этот метод удобен, если у вас есть небольшой файл и вы хотите манипулировать всем текстом этого файла.
  • readline() — прочитать текстовый файл построчно и вернуть все строки в виде строк.
  • readlines() — прочитать все строки текстового файла и вернуть их в виде списка строк.

3) метод close()

Открытый файл останется открытым, пока вы не закроете его с помощью метода close().

Важно закрыть файл, который больше не используется. Если вы не закроете файл, программа может выйти из строя или файл будет поврежден.

Ниже показано, как вызвать метод close() для закрытия файла:

Чтобы закрыть файл автоматически, не вызывая метод close(), используйте оператор with следующим образом:

На практике вы будете использовать оператор with для автоматического закрытия файла.

Чтение примеров текстовых файлов

Для демонстрации мы будем использовать файл-zen-of-python.txt.

В следующем примере показано, как использовать метод read() для чтения всего содержимого файла the-zen-of-python.txt в строку:

В следующем примере метод readlines() используется для чтения текстового файла и возврата содержимого файла в виде списка строк:

В следующем примере показано, как использовать readline() для чтения текстового файла построчно:

Более краткий способ чтения текстового файла построчно

Функция open() возвращает файловый объект, который является повторяемым объектом. Таким образом, вы можете использовать цикл for для перебора строк текстового файла следующим образом:

Это более краткий способ чтения текстового файла построчно.

Чтение текстовых файлов UTF-8

Код в предыдущих примерах отлично работает с текстовыми файлами ASCII. Однако, если вы имеете дело с другими языками, такими как японский, китайский и корейский, текстовый файл не является простым текстовым файлом ASCII. И, скорее всего, это файл UTF-8, в котором используются не только стандартные текстовые символы ASCII.

Чтобы открыть текстовый файл UTF-8, вам нужно передать encoding='utf-8' функции open(), чтобы указать ей ожидать символов UTF-8 из файла.

Ответы на этот вопрос созданы сообществом. Отредактируйте существующие ответы, чтобы улучшить этот пост. В настоящее время он не принимает новые ответы или взаимодействия.

Как прочитать каждую строку файла в Python и сохранить каждую строку как элемент списка?

Я хочу прочитать файл построчно и добавить каждую строку в конец списка.


28 ответов 28

Этот код прочитает весь файл в память:

Если вы хотите удалить все пробельные символы (переводы строк и пробелы) в конце каждой строки, используйте это вместо этого:

(Это позволяет избежать выделения дополнительного списка из file.readlines() .)

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

В Python 3.8 и более поздних версиях вы можете использовать цикл while с оператором walrus следующим образом:


Я проверил профиль памяти различными способами, указанными в ответах, с помощью процедуры, упомянутой здесь. Использование памяти намного лучше, когда каждая строка считывается из файла и обрабатывается, как это предлагает здесь @DevShark. Хранение всех строк в объекте-коллекции не является хорошей идеей, если память является ограничением или файл большой. Время выполнения одинаково в обоих подходах.

или с удалением символа новой строки:



Безопасна ли вторая версия со строкой for в open(filename)? То есть файл будет автоматически закрыт?

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

lines = [x.rstrip('\n') for x in open('data\hsf.txt','r')] Если я напишу таким образом, как мне закрыть файл после прочтения?

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

Это более явно, чем необходимо, но делает то, что вы хотите.

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

Это даст "массив" строк из файла.

open возвращает файл, который можно повторить. Когда вы перебираете файл, вы получаете строки из этого файла. tuple может взять итератор и создать для вас экземпляр кортежа из переданного вами итератора. lines — это кортеж, созданный из строк файла.


@Vanuan Поскольку после запуска строки не осталось ссылок на файл, деструктор должен автоматически закрыть файл.

@NoctisSkytower Мне кажется, что lines = open(filename).read().splitlines() немного чище, и я считаю, что он также лучше обрабатывает окончания строк DOS.

@mklement0 Если предположить, что файл состоит из 1000 строк, список занимает примерно на 13,22 % больше места, чем кортеж . Результаты получены из sys import getsizeof as g; я = [Нет] * 1000; round((g(list(i)) / g(tuple(i)) - 1) * 100, 2) . Создание кортежа занимает примерно на 4,17 % больше времени, чем создание списка (со стандартным отклонением 0,16 %). Результаты получаются при запуске timeit import timeit as t; round((t('tuple(i)', 'i = [None] * 1000') / t('list(i)', 'i = [None] * 1000') - 1) * 100, 2) 30 раз. Мое решение отдает предпочтение пространству, а не скорости, когда необходимость в изменчивости неизвестна.

Согласно методам файловых объектов Python, самый простой способ преобразовать текстовый файл в список:

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

Использование с и readlines() :

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

Традиционный способ:



@oneturkmen нет, он прав. он перебирает строки в файле. Вы были бы правы, если бы строка была после предложения 'with'

Если вы хотите включить \n:

Если вы не хотите включать \n:

@Joke Должно быть, ты делаешь что-то не так (без обид). С s = '1\n2\n3\n' s.splitlines() возвращает ['1', '2', '3'] . Может быть, ваш ввод на самом деле содержит пустые строки? с = '1\n\n2\n\n3\n\n'

Вы можете просто сделать следующее, как было предложено:

Обратите внимание, что у этого подхода есть 2 недостатка:

1) Вы сохраняете все строки в памяти. В общем случае это очень плохая идея. Файл может быть очень большим, и вам может не хватить памяти. Даже если он небольшой, это просто пустая трата памяти.

2) Это не позволяет обрабатывать каждую строку по мере их чтения. Поэтому, если вы обрабатываете свои строки после этого, это неэффективно (требуется два прохода, а не один).

Лучшим подходом для общего случая будет следующий:

Где вы определяете свою функцию процесса так, как хотите. Например:

(Реализация класса Superman оставлена ​​вам в качестве упражнения).

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


Это было именно то, что мне было нужно, и спасибо за объяснение недостатков. Как новичок в Python, здорово понимать, почему решение является решением. Здоровья!

Подумай еще немного, Кори. Вы действительно хотите, чтобы ваш компьютер читал каждую строку, ничего не делая с этими строками? Конечно, вы можете понять, что вам всегда нужно обрабатывать их тем или иным образом.

С линиями всегда нужно что-то делать. Это может быть так же просто, как распечатать строки или подсчитать их. Нет никакого смысла в том, чтобы ваш процесс читал строки в памяти, но ничего с ней не делал.

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

@PierreOcinom, это правильно. Учитывая, что файл открыт в режиме только для чтения, вы не можете изменить исходный файл с помощью приведенного выше кода. Чтобы открыть файл для чтения и записи, используйте open('file_path', 'r+')

Содержимое текстового файла:

Мы можем использовать этот скрипт Python в том же каталоге, что и txt выше

Использование добавления:

Или:

Или:

Или:


read().splitlines() предоставляется вам Python: это просто readlines() (что, вероятно, быстрее, так как менее расточительно).

@EricOLebigot, судя по показанным примерам, read().splitlines() и readlines() не дают одинаковых результатов. Вы уверены, что они эквивалентны?

Если вы используете только строки чтения, вам нужно использовать метод полосы, чтобы избавиться от \n в тексте, поэтому я изменил последние примеры, используя понимание списка, чтобы получить одинаковый результат в обоих случаях. Итак, если вы используете read().readlines(), у вас будет «чистый» элемент со строкой и без символа новой строки, в противном случае вы должны делать то, что видите в приведенном выше коде.

Действительно. Обратите внимание, что в коде выше все strip() должны быть rstrip("\n") или пробелы вокруг строки удаляются. Кроме того, нет смысла выполнять readlines() при включении списка: лучше просто перебирать файл, поскольку он не тратит время и память на создание промежуточного списка строк.

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

  • Открыть файл
  • Читать файл
  • Сохранить содержимое в виде списка

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

Однако я добавлю еще несколько пояснений.

Открытие файла

Я предполагаю, что вы хотите открыть конкретный файл и не имеете дело непосредственно с дескриптором файла (или файловоподобным дескриптором). Наиболее часто используемая функция для открытия файла в Python — open , она принимает один обязательный аргумент и два необязательных аргумента в Python 2.7:

  • Имя файла
  • Режим
  • Буферизация (в этом ответе я проигнорирую этот аргумент)

Имя файла должно быть строкой, представляющей путь к файлу. Например:

Обратите внимание, что необходимо указать расширение файла. Это особенно важно для пользователей Windows, поскольку расширения файлов, такие как .txt или .doc и т. д., по умолчанию скрыты при просмотре в проводнике.

Второй аргумент — это режим, по умолчанию это r, что означает «только для чтения». Это именно то, что вам нужно в вашем случае.

Но если вы действительно хотите создать файл и/или записать в файл, вам понадобится другой аргумент. Если вам нужен обзор, есть отличный ответ.

Для чтения файла вы можете опустить режим или передать его явно:

В обоих случаях файл будет открыт только для чтения. Если вы хотите прочитать двоичный файл в Windows, вам нужно использовать режим rb :

На других платформах символ "b" (двоичный режим) просто игнорируется.

Теперь, когда я показал, как открыть файл, давайте поговорим о том, что вам всегда нужно снова закрыть его. В противном случае он будет держать открытый дескриптор файла до тех пор, пока процесс не завершится (или Python не удалит дескриптор файла).

Хотя вы могли бы использовать:

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

Однако Python предоставляет контекстные менеджеры с более красивым синтаксисом (но для open он почти идентичен описанному выше try и finally):

Последний подход рекомендуется для открытия файла в Python!

Чтение файла

Хорошо, вы открыли файл, теперь как его прочитать?

Функция open возвращает файловый объект и поддерживает протокол итераций Python. Каждая итерация даст вам строку:

Это напечатает каждую строку файла. Обратите внимание, однако, что каждая строка будет содержать символ новой строки \n в конце (вы можете проверить, построен ли ваш Python с универсальной поддержкой новых строк - в противном случае вы также могли бы использовать \r\n в Windows или \r на Mac в качестве новых строк) . Если вы не хотите этого, вы можете просто удалить последний символ (или два последних символа в Windows):

Но последняя строка не обязательно имеет завершающую новую строку, поэтому ее не следует использовать. Можно проверить, заканчивается ли он завершающим символом новой строки, и если да, то удалить его:

Но вы можете просто удалить все пробелы (включая символ \n) с конца строки, это также удалит все другие завершающие пробелы, поэтому вам придется будьте осторожны, если это важно:

Однако, если строки заканчиваются на \r\n ("перевод строки" в Windows), функция .rstrip() также позаботится о \r !

Сохранить содержимое как список

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

Если вы хотите удалить завершающие символы новой строки, вы можете вместо этого использовать понимание списка:

Или еще проще: метод .readlines() файлового объекта по умолчанию возвращает список строк:

Это также будет включать конечные символы новой строки, если они вам не нужны, я бы рекомендовал подход [line.rstrip() для строки в f], поскольку он позволяет избежать хранения двух списков, содержащих все строки в памяти.

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

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

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

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

Чтобы усложнить ситуацию, Python предлагает несколько решений для чтения файлов. Мы рассмотрим наиболее распространенные процедуры построчного чтения файлов в Python. Освоив основы чтения файлов в Python, вы будете лучше подготовлены к предстоящим задачам.


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

Многие из этих функций Python можно использовать для чтения файла построчно.

Построчное чтение файла с помощью метода readlines()

Нашим первым подходом к чтению файла в Python будет путь наименьшего сопротивления: метод readlines(). Этот метод откроет файл и разделит его содержимое на отдельные строки.

Этот метод также возвращает список всех строк в файле. Мы можем использовать readlines() для быстрого чтения всего файла.

Например, предположим, что у нас есть файл, содержащий основную информацию о сотрудниках нашей компании. Нам нужно прочитать этот файл и что-то сделать с данными.

employees.txt
Имя: Маркус Гэй
Возраст: 25
Профессия: веб-разработчик

Имя: Салли Рейн
возраст: 31
Профессия: старший программист

Пример 1: Использование readlines() для чтения файла

Вывод

readline() и readlines()

В отличие от своего аналога, метод readline() возвращает только одну строку из файла. Метод realine() также добавит завершающий символ новой строки в конец строки.

С помощью метода readline() у нас также есть возможность указать длину возвращаемой строки. Если размер не указан, будет прочитана вся строка.

Рассмотрите следующий текстовый файл:

wise_owl.txt
На дубе жила мудрая старая сова.
Чем больше она видела, тем меньше говорила.
Чем меньше говорила, тем больше говорила слышал.
Почему мы все не можем быть такими, как эта мудрая старая птица?

Мы можем использовать readline() для получения первой строки текстового документа. В отличие от readlines(), при использовании метода readline() для чтения файла будет напечатана только одна строка.

Пример 2. Чтение одной строки с помощью метода readline()

Вывод

Метод readline() извлекает только одну строку текста.Используйте readline(), если вам нужно прочитать все строки сразу.

Вывод

['Мудрая старая сова жила под дубом.\n', 'Чем больше она видела, тем меньше говорила.\n', 'Чем меньше говорила, тем больше слышала.\n', «Почему может' неужели мы все будем как эта мудрая старая птица?\n”]

Использование цикла while для чтения файла

Также можно прочитать файл с помощью циклов. Используя тот же файл wise_owl.txt, который мы создали в предыдущем разделе, мы можем прочитать каждую строку в файле с помощью цикла while.

Пример 3. Чтение файлов с помощью цикла while и readline()

Вывод

На дубе жила мудрая старая сова.
Чем больше она видела, тем меньше говорила.
Чем меньше говорила, тем больше слышала.
Почему мы все не можем быть такими, как эта мудрая старая птица?

Остерегайтесь бесконечных циклов

Необходимо сделать предупреждение при работе с циклами while. Будьте осторожны, добавляя случай завершения цикла, иначе вы зациклитесь навсегда. Рассмотрим следующий пример:

Выполнение этого кода приведет к тому, что Python попадет в бесконечный цикл, печатая «День сурка» до конца времени. При написании такого кода всегда предусмотрите возможность выхода из цикла.

Если вы обнаружите, что случайно запустили бесконечный цикл, вы можете выйти из него в терминале, нажав Control+C на клавиатуре.

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

В Python также можно прочитать файл с помощью цикла for. Например, наш клиент предоставил нам список адресов предыдущих клиентов. Нам нужно прочитать данные с помощью Python.

Вот список клиентов:

address_list.txt
Бобби Дилан
111 Longbranch Ave.
Хьюстон, Техас 77016

Сэм Гарфилд
9805 Border Rd.
Нью-Брансуик, Нью-Джерси 08901

Пенни Лейн
408 2nd Lane
Линденхерст, Нью-Йорк 11757

Маркус Гэй
622 Shub Farm St.
Рокледж, Флорида 32955

Пруденс Браун
Эшли Авеню, 66
Часка, Миннесота 55318

Каждый раз, когда мы открываем файловый объект, мы можем использовать цикл for для чтения его содержимого с помощью ключевого слова in. С помощью ключевого слова in мы можем прокручивать строки файла.

Пример 4. Использование цикла for для чтения строк в файле

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

Пример 5. Чтение файла и разделение содержимого на список

Чтение файла с помощью Менеджера контекста

Управление файлами — деликатная процедура в любом языке программирования. С файлами следует обращаться осторожно, чтобы предотвратить их повреждение. Когда файл открывается, необходимо позаботиться о том, чтобы впоследствии ресурс был закрыт.

Кроме того, в Python существует ограничение на количество одновременно открытых файлов. Чтобы избежать этих проблем, Python предоставляет нам Контекстный менеджер

.

Представляем блок with

Каждый раз, когда мы открываем файл в Python, важно не забывать его закрывать. Такой метод, как readlines(), будет хорошо работать для небольших файлов, но что, если у нас есть более сложный документ? Использование Python с операторами гарантирует безопасное обращение с файлами.

  • Инструкция with используется для безопасного доступа к файлам ресурсов.
  • Python создает новый контекст при встрече с блоком with.
  • После выполнения блока Python автоматически закрывает файловый ресурс.
  • Контекст имеет ту же область действия, что и оператор with.

Давайте попрактикуемся в использовании оператора with, прочитав электронное письмо, которое мы сохранили в виде текстового файла.

email.txt
Уважаемый клиент,
Спасибо, что обратились к нам по поводу проблемы с приобретенным продуктом. Мы готовы ответить на любые вопросы, которые могут у вас возникнуть в отношении наших продуктов.

Мы хотим убедиться, что вы полностью удовлетворены своей покупкой. С этой целью мы предлагаем 30-дневную гарантию возврата денег на весь наш инвентарь. Просто верните товар, и мы с радостью возместим стоимость вашей покупки.

Спасибо,
компания ABC

На этот раз для чтения строк файла используется цикл for. Когда мы используем Context Manager, файл автоматически закрывается, когда его обработчик выходит за пределы области видимости. Когда функция завершает работу с файлом, оператор with обеспечивает ответственное обращение с ресурсом.

Обзор

Мы рассмотрели несколько способов построчного чтения файлов в Python. Мы узнали, что существует большая разница между методами readline() и readlines() и что мы можем использовать цикл for для чтения содержимого файлового объекта.

Мы также узнали, как использовать оператор with для открытия и чтения файлов. Мы увидели, как был создан менеджер контекста, чтобы сделать работу с файлами более безопасной и простой в Python.

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

Если вы хотите узнать о программировании на Python, перейдите по ссылкам ниже, чтобы просмотреть другие полезные уроки Python для начинающих.

Python Open File — как читать текстовый файл построчно

В Python есть несколько способов чтения текстового файла.

В этой статье я расскажу о функции open(), методах read(), readline(), readlines(), close() и ключевом слове with.

Что такое функция open() в Python?

Если вы хотите прочитать текстовый файл на Python, вам сначала нужно его открыть.

Это основной синтаксис функции open() в Python:

Имена файлов и правильные пути

Если текстовый файл и ваш текущий файл находятся в одном и том же каталоге ("папке"), вы можете просто указать имя файла в функции open().

Вот пример того, как оба файла находятся в одном каталоге:

Снимок экрана-2021-09-13-at-1.49.16-AM

Если ваш текстовый файл находится в другом каталоге, вам нужно указать правильный путь для текстового файла.

В этом примере файл со случайным текстом находится не в папке main.py :

Screen-Shot-2021-09-13-at-2.00.27-AM

Чтобы получить доступ к этому файлу в main.py , вы должны включить имя папки в имя файла.

Если у вас нет правильного пути к файлу, вы получите следующее сообщение об ошибке:

Screen-Shot-2021-09-13-at-2.03.33-AM

Очень важно отслеживать, в каком каталоге вы находитесь, чтобы можно было указать правильный путь.

Необязательный параметр Mode в open()

При работе с файлами существуют разные режимы. Режим по умолчанию — режим чтения.

Буква r означает режим чтения.

Вы также можете опустить mode= и написать просто "r".

Существуют и другие типы режимов, такие как "w" для записи или "a" для добавления. Я не буду подробно останавливаться на других режимах, потому что мы сосредоточимся только на чтении файлов.

Полный список других режимов можно найти в документации.

Дополнительные параметры для функции open() в Python

Функция open() может принимать эти необязательные параметры.

  • буферизация
  • кодирование
  • ошибки
  • новая строка
  • закрыть
  • открывалка

Чтобы узнать больше об этих необязательных параметрах, прочитайте документацию.

Что такое метод readable() в Python?

Если вы хотите проверить, можно ли прочитать файл, вы можете использовать метод readable(). Это вернет True или False .

В этом примере будет возвращено значение True, поскольку мы находимся в режиме чтения:

Снимок экрана-2021-09-13-at-3.36.37-AM

Если бы я изменил этот пример на режим "w" (запись), то метод readable() вернул бы False :

Что такое метод read() в Python?

Метод read() считывает все содержимое файла как одну строку. Это хороший метод, если у вас не так много содержимого в текстовом файле.

В этом примере я использую метод read() для вывода списка имен из файла demo.txt:

Screen-Shot-2021-09-13-at-2.43.59-AM

Этот метод может принимать необязательный параметр size. Вместо чтения всего файла будет прочитана только его часть.

Если мы изменим предыдущий пример, мы сможем распечатать только первое слово, добавив число 4 в качестве аргумента для read() .

Screen-Shot-2021-09-13-at-3.01.30-AM

Если аргумент размера опущен или если число отрицательное, то будет прочитан весь файл.

Что такое метод close() в Python?

Когда вы закончите чтение файла, важно закрыть его. Если вы забудете закрыть файл, это может вызвать проблемы.

Это пример закрытия файла demo.txt:

Как использовать ключевое слово with для закрытия файлов в Python

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

Вот как переписать наш пример, используя ключевое слово with:

Что такое метод readline() в Python?

Этот метод читает одну строку из файла и возвращает ее.

В этом примере у нас есть текстовый файл со следующими двумя предложениями:

Если мы используем метод readline(), он напечатает только первое предложение файла.

Screen-Shot-2021-09-13-at-3.57.14-AM

Этот метод также принимает необязательный параметр размера. Мы можем изменить пример, чтобы добавить число 7 только для чтения и печати. ​​Это:

Screen-Shot-2021-09-13-at-4.08.03-AM

Что такое метод readlines() в Python?

Этот метод будет читать и возвращать список всех строк в файле.

В этом примере мы собираемся распечатать наши продукты в виде списка, используя метод readlines().

Screen-Shot-2021-09-13-at-4.19.23-AM

Как использовать цикл for для чтения строк из файла в Python

Альтернативой этим различным методам чтения может быть использование цикла for .

В этом примере мы можем распечатать все элементы файла demo.txt, перебирая объект в цикле.

Screen-Shot-2021-09-13-at-4.27.49-AM

Заключение

Если вы хотите прочитать текстовый файл на Python, вам сначала нужно его открыть.

Если текстовый файл и ваш текущий файл находятся в одном и том же каталоге ("папке"), вы можете просто указать имя файла в функции open().

Если ваш текстовый файл находится в другом каталоге, вам нужно указать правильный путь для текстового файла.

Функция open() принимает необязательный параметр режима. Режим по умолчанию — режим чтения.

Если вы хотите проверить, можно ли прочитать файл, вы можете использовать метод readable(). Это вернет True или False .

Метод read() будет читать все содержимое файла как одну строку.

Когда вы закончите чтение файла, важно закрыть его. Если вы забудете закрыть файл, это может вызвать проблемы.

Один из способов убедиться, что ваш файл закрыт, — использовать ключевое слово with.

Метод readline() читает одну строку из файла и возвращает ее.

Метод readlines() будет читать и возвращать список всех строк в файле.

Альтернативой этим различным методам чтения может быть использование цикла for .

Надеюсь, вам понравилась эта статья, и желаю удачи в вашем путешествии по Python.

Читайте также: