Во всех предыдущих примерах в результате получалась одна строка poem.
Функция readline() считывает по одной строке за раз и возвращает список этих
строк:
>>> fin = open('relativity', 'rt' )
>>> lines = fin.readlines()
>>> fin.close()
>>> print(len(lines), 'lines read')
5 lines read
>>> for line in lines:
... print(line, end='')
...
Ввод информации в файлы и ее вывод из них
215
There was a young lady named Bright,
Whose speed was far faster than light;
She started one day
In a relative way,
And returned on the previous night.>>>
Мы указали функции print() не добавлять автоматически символы новой стро-
ки, поскольку первые четыре строки сами их имеют. В последней строке этого
символа не было, что заставило интерактивное приглашение появиться сразу после
последней строки.
Записываем данные в бинарный файл
с помощью функции write()
Если вы включите символ 'b' в строку режима, файл будет открыт в бинарном
режиме. В этом случае вы вместо чтения и записи строк будете работать с бай-
тами.
У нас под рукой нет бинарного стихотворения, поэтому мы просто сгенерируем
256 байтовых значений от 0 до 255:
>>> bdata = bytes(range(0, 256))
>>> len(bdata)
256
Откроем файл для записи в бинарном режиме и запишем все данные сразу:
>>> fout = open('bfile', 'wb')
>>> fout.write(bdata)
256
>>> fout.close()
И вновь функция write() возвращает количество записанных байтов.
Как и в случае с текстом, вы можете записывать бинарные данные фрагментами:
>>> fout = open('bfile', 'wb')
>>> size = len(bdata)
>>> offset = 0
>>> chunk = 100
>>> while True:
... if offset > size:
... break
... fout.write(bdata[offset:offset+chunk])
... offset += chunk
...