May 29, 2024

Урок: Файловый ввод-вывод

Файловый ввод-вывод

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

Чтение и запись файлов

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

  1. Запись в файл:
Пример записи в файл
file = open("example.txt", "w")
file.write("Hello, World!\n")
file.write("This is a second line.\n")
file.close()

Этот код открывает файл example.txt в режиме записи (w). Если файл не существует, он будет создан. С помощью метода write() в файл записывается строка. После завершения записи файл закрывается методом close().

  1. Чтение из файла:
Пример чтения из файла
file = open("example.txt", "r")
content = file.read()
print(content)
file.close()

Этот код открывает файл example.txt в режиме чтения (r). Содержимое файла считывается с помощью метода read() и выводится на экран. Затем файл закрывается.

Работа с текстовыми и бинарными файлами

  1. Текстовые файлы:

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

Пример работы с текстовыми файлами
with open("text_example.txt", "w") as file:
    file.write("This is a text file.\n")

with open("text_example.txt", "r") as file:
    content = file.read()
    print(content)  # Выводит: This is a text file.

Этот код использует менеджер контекста with для автоматического открытия и закрытия файла. Файл text_example.txt открывается в режиме записи, и в него записывается строка. Затем файл открывается в режиме чтения, и его содержимое выводится на экран.

  1. Бинарные файлы:

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

Пример работы с бинарными файлами
with open("binary_example.bin", "wb") as file:
    file.write(b'\x00\x01\x02\x03')

with open("binary_example.bin", "rb") as file:
    content = file.read()
    print(content)  # Выводит: b'\x00\x01\x02\x03'

Этот код открывает файл binary_example.bin в режиме записи в двоичном формате (wb) и записывает в него байтовую строку. Затем файл открывается в режиме чтения в двоичном формате (rb), и его содержимое выводится на экран.

Использование менеджеров контекста (with)

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

Пример использования менеджера контекста
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

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

Практическое задание

  1. Создайте текстовый файл и запишите в него несколько строк.
  2. Прочитайте содержимое текстового файла и выведите его на экран.
  3. Создайте бинарный файл и запишите в него байтовые данные.
  4. Прочитайте содержимое бинарного файла и выведите его на экран.
  5. Используйте менеджер контекста для записи и чтения текстового файла.
Пример выполнения практического задания

# Задание 1
with open("my_text_file.txt", "w") as file:
    file.write("Line 1\n")
    file.write("Line 2\n")
    file.write("Line 3\n")

# Задание 2
with open("my_text_file.txt", "r") as file:
    content = file.read()
    print(content)
    # Выводит:
    # Line 1
    # Line 2
    # Line 3

# Задание 3
with open("my_binary_file.bin", "wb") as file:
    file.write(b'\x10\x20\x30\x40')

# Задание 4
with open("my_binary_file.bin", "rb") as file:
    content = file.read()
    print(content)  # Выводит: b'\x10\x20\x30\x40'

# Задание 5
with open("my_context_text_file.txt", "w") as file:
    file.write("Using context manager.\n")

with open("my_context_text_file.txt", "r") as file:
    content = file.read()
    print(content)  # Выводит: Using context manager.

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

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