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

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

Содержание

Методы чтения

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

Метод 1: с помощью функции open() с методом read()

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

Сценарий: у нас есть текстовый файл, содержащий список президентов США, и мы хотим сразу прочитать все его содержимое через Python.

Случай 1. Метод read() без аргументов считывает весь файл и возвращает его в виде одной строки.

with open('usa_presidents.txt', 'r') as file:
    content = file.read()
print(content)
с Использование with для открытия файлов — лучшая практика в Python, поскольку она гарантирует правильное закрытие файла после завершения его работы.
open() Чтобы открыть файл в различных режимах Python.
‘r’ Это означает «режим чтения». Это означает, что мы открываем файл для чтения его содержимого в Python.
as file Это часть оператора with, которая присваивает открытый файл переменной с именем file.
read() Метод read() считывает все содержимое открытого файла в строку(если не был передан аргумент.

Вывод: все содержимое текстового файла usa_presidents.txt печатается на языке Python.

George Washington
John Adams
Thomas Jefferson

Текстовый файл на Python с именами USA_presidents

Python прочитать файл в строку

Случай 2: метод read() с аргументами считывает из файла указанное количество символов.

По тому же сценарию:

with open('usa_presidents.txt', 'r') as file:
    content = file.read(15)
print(content)

Вывод: здесь функция read() может читать только 15 символов из файла в Python.

George Washingt

Как использовать функцию read() для чтения текстовых файлов

Метод 2: с помощью метода readline()

Метод readline() в Python считывает по одной строке из файла в Python. При повторном вызове он читает следующую строку и так далее.

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

with open('usa_landmarks.txt', 'r') as file:
    first_landmark = file.readline().strip()
    second_landmark = file.readline().strip()
print(first_landmark)
print(second_landmark)

В нашем примере «Статуя Свободы» значится в первой строке файла usa_landmarks.txt, а «Гора Рашмор» — во второй. Это и есть выходные данные.

Функция Strip() в Python применяется для удаления всех начальных и завершающих пробелов, включая символ новой строки.

Statue of Liberty
Mount Rushmore

Метод 2: с помощью метода readline()

Код Python с выводом

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

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

Метод 3: с помощью функции readlines()

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

Сценарий: у нас есть файл на Python со списком столиц штатов. Мы хотим прочитать этот файл и сохранить каждую строку как отдельный элемент списка в Python. Функция readlines() считывает весь файл и возвращает список строк.

with open('usa_capitals.txt', 'r') as file:
    lines = file.readlines()
    print('The list of the strings:',lines)
content = ''.join(lines)
print('After join:', content)

Вывод: метод readlines() считывает содержимое файла и возвращает список строк в Python. Каждая строка в этом списке соответствует строке из исходного текстового файла. Затем метод join() используется для объединения всех этих строк в одну, которую затем можно вывести на экран.

The list of the strings: ['California: Sacramento\n', 'Texas: Austin\n', 'Florida: Tallahassee']
After join: California: Sacramento
Texas: Austin
Florida: Tallahassee

Метод 3: с помощью функции readlines()

Функция readlines()

Способ 4: используя понимание списка

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

Например, у нас есть файл со списком городов США. Но нам интересны только те города, в названии которых есть «Сан». С помощью понимания списков в Python мы можем отфильтровать и выбрать только нужные строки.

with open('usa_cities.txt', 'r') as file:
    content = ''.join([line for line in file if "San" in line])
print(content)

Вывод: функция понимания списка в Python последовательно перебирает все строки в текстовом файле и оставляет только те, которые содержат подстроку «San». В нашем случае этому условию соответствует только строка «Сан-Франциско», поэтому она и будет выведена на экран.

San Francisco

Способ 4: используя понимание списка

Как прочитать текстовый файл в строковой переменной Python

Способ 5: с обработкой исключений

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

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

try:
    with open('usa_national_parks.txt', 'r') as file:
        content = file.read()
    print(content)
except FileNotFoundError:
    print("The file was not found!")
except PermissionError:
    print("Permission denied while trying to read the file.")
except Exception as e:
    print(f"An error occurred: {e}")

Вывод: В этом примере файл usa_national_parks.txt читается без ошибок, поэтому содержимое файла печатается напрямую.

Yellowstone
Yosemite
Grand Canyon

Способ 5: с обработкой исключений

Python читает файл в строковую переменную

Если бы файл отсутствовал, в Python возникла бы ошибка FileNotFoundError, которая сообщала бы: «Файл не найден!». Если бы возникла проблема с разрешением доступа к файлу, Python выдал бы сообщение: «Разрешение отклонено при попытке прочитать файл». Последний блок Python, помимо прочего, будет обрабатывать любые другие непредвиденные ошибки, которые могут возникнуть.

Заключение

В этой статье вы узнаете пять различных способов прочитать файл как строку в Python. Мы рассмотрим методы read(), readline(), readlines(), понимание списка и обработку исключений, и продемонстрируем их работу на примерах. Каждый из этих методов подходит для разных ситуаций, поэтому вы сможете выбрать наиболее подходящий для вашей задачи. Мы покажем, как сделать чтение файлов эффективным, безопасным и удобным в использовании.

Добавить комментарий