Module (48%)
Section (100%)

Основные тезисы


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

  • read(number) – считывает number символов/байтов из файла и возвращает их в виде строки; может читать весь файл сразу;
  • readline() – читает одну строку из текстового файла;
  • readlines(number) – читает number строк из текстового файла; умеет читать сразу все строки;
  • readinto(bytearray) – читает байты из файла и заполняет ими bytearray;

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

  • write(string) – записывает string в текстовый файл;
  • write(bytearray) – записывает все байты bytearray в файл;

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

for line in open("file", "rt"): print(line, end='')

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


Упражнение 1

Чего мы ожидаем от метода readlines(), когда поток связан с пустым файлом?



Упражнение 2

Для чего предназначен следующий код?

for line in open("file", "rt"): for char in line: if char.lower() not in "aeiouy ": print(char, end='')


Упражнение 3

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

try: stream = open("image.png", "rb") # Insert a line here. stream.close() except IOError: print("failed") else: print("success")