Как читать и писать файлы на Python

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

Открытие и закрытие файлов

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

# Opening and closing a file
file = open("example.txt", "r")  # Open file for reading
# Perform file operations
file.close()  # Close the file

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

В Python существует несколько способов прочитать содержимое файла в зависимости от ваших потребностей:

Прочитать весь файл

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

# Reading the entire file
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

Прочитать строки файла

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

# Reading lines using readline()
with open("example.txt", "r") as file:
    line = file.readline()
    while line:
        print(line.strip())
        line = file.readline()

# Reading all lines using readlines()
with open("example.txt", "r") as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())

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

Предпочтительным методом чтения файла построчно является использование цикла for непосредственно на объекте файла. Этот подход эффективен в плане использования памяти, особенно для больших файлов.

# Reading file line by line using a for loop
with open("example.txt", "r") as file:
    for line in file:
        print(line.strip())

Запись в файлы

Python позволяет вам записывать в файлы с помощью методов write() и writelines(). Вам нужно открыть файл в режиме, который поддерживает запись, например 'w' (запись) или 'a' (добавление).

Запись в файл

Метод write() записывает одну строку в файл. Открытие файла в режиме записи 'w' создаст новый файл или перезапишет существующий файл.

# Writing to a file
with open("output.txt", "w") as file:
    file.write("Hello, World!\n")
    file.write("This is a new line.")

Добавление к файлу

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

# Appending to a file
with open("output.txt", "a") as file:
    file.write("\nThis line is appended.")

Написание нескольких строк

Метод writelines() используется для записи нескольких строк в файл. Он ожидает список строк, каждая из которых представляет строку.

# Writing multiple lines to a file
lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
with open("output.txt", "w") as file:
    file.writelines(lines)

Режимы файлов

Функция open() в Python поддерживает несколько режимов открытия файлов:

  • 'r' - Режим чтения (по умолчанию). Открывает файл для чтения.
  • 'w' - Режим записи. Открывает файл для записи (создает новый файл или обрезает существующий файл).
  • 'a' - Режим добавления. Открывает файл для добавления (создает новый файл, если его нет).
  • 'r+' - Режим чтения и записи. Открывает файл для чтения и записи.
  • 'b' - Двоичный режим. Открывает файл в двоичном режиме (используется с 'rb', 'wb' и т. д.).

Заключение

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