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

Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

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

Работа с файлами в Python может включать как текстовые, так и бинарные файлы, в зависимости от типа данных, которые вы планируете хранить или обрабатывать. Давайте рассмотрим особенности работы с каждым из них.
 
Текстовые файлы
Текстовые файлы содержат данные, представленные в виде текста, который можно прочитать и интерпретировать человеком. Для работы с текстовыми файлами используются следующие режимы доступа:
'r': чтение (файл должен существовать)
'w': запись (создаст новый файл или перезапишет существующий)
'a': добавление в конец (создаст новый файл или добавит данные в существующий)
'r+': чтение и запись (файл должен существовать)
'w+': запись и чтение (создаст новый файл или перезапишет существующий)
'a+': добавление и чтение (создаст новый файл или добавит данные в существующий)
# Чтение из текстового файла
with open("text_file.txt", "r") as file:
    data = file.read()
    print(data)

# Запись в текстовый файл
with open("text_file.txt", "w") as file:
    file.write("Hello, world!\n")
    file.write("This is a text file.")

# Добавление в текстовый файл
with open("text_file.txt", "a") as file:
    file.write("Appending new line to text file.\n")
 
Бинарные файлы
Бинарные файлы содержат данные, которые не представляются в виде текста, а в виде последовательности байтов. Бинарные файлы обычно используются для хранения изображений, аудиофайлов, видеофайлов и других типов данных, которые не могут быть представлены в текстовом формате. Для работы с бинарными файлами используются следующие режимы доступа:
'rb': чтение (файл должен существовать)
'wb': запись (создаст новый файл или перезапишет существующий)
'ab': добавление в конец (создаст новый файл или добавит данные в существующий)
'rb+': чтение и запись (файл должен существовать)
'wb+': запись и чтение (создаст новый файл или перезапишет существующий)
'ab+': добавление и чтение (создаст новый файл или добавит данные в существующий)
# Чтение из бинарного файла
with open("binary_file.bin", "rb") as file:
    data = file.read()
    print(data)

# Запись в бинарный файл
with open("binary_file.bin", "wb") as file:
    file.write(b"\x48\x65\x6C\x6C\x6F\x2C\x20\x77\x6F\x72\x6C\x64\x21")  # "Hello, world!" в байтовом представлении

# Добавление в бинарный файл
with open("binary_file.bin", "ab") as file:
    file.write(b"\x0A\x4E\x65\x77\x20\x64\x61\x74\x61")  # "\nNew data" в байтовом представлении
 
Использование контекстного менеджера
Для обеспечения корректного закрытия файлов после завершения операций с ними рекомендуется использовать контекстный менеджер with. Это гарантирует, что файл будет закрыт автоматически по завершении блока with, даже если произойдет исключение в процессе работы с файлом.
 
Чтение построчно
Чтение текстового файла построчно с помощью цикла:
with open("example.txt", "r") as file:
    for line in file:
        print(line, end="")
 
Запись списка строк
Запись списка строк в текстовый файл:
lines = ["First line\n", "Second line\n", "Third line\n"]
with open("example.txt", "w") as file:
    file.writelines(lines)
 
Чтение файла в список строк
Чтение текстового файла в список строк:
with open("example.txt", "r") as file:
    lines = file.readlines()
print(lines)
 
Работа с большими файлами
Чтение больших файлов частями для экономии памяти:
with open("large_file.txt", "r") as file:
    while True:
        chunk = file.read(1024)  # Чтение по 1024 байта за раз
        if not chunk:
            break
        print(chunk)

 

категории

ТЕОРИЯ

  • Введение в Python
  • Основы программирования на Python
  • Управляющие конструкции
  • Структуры данных
  • Функции и модули
  • Обработка исключений
  • Работа с файлами и потоками
  • файловая система
  • Объектно-ориентированное программирование (ООП)
  • Регулярные выражения
  • Дополнительные темы

Мы в соцсетях