Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 159

12. Используйте метод unhexlify для того, чтобы преобразовать шестнадцатеричную

строку, созданную путем объединения двух строк, что позволило ей разместить-

ся на странице, в переменную типа bytes с именем gif:

'47494638396101000100800000000000ffffff21f9' +

'0401000000002c000000000100010000020144003b'

Упражнения

209

13. Байты, содержащиеся в переменной gif, определяют однопиксельный прозрач-

ный GIF-файл. Этот формат является одним из самых распространенных.

Корректный файл формата GIF начинается со строки GIF89a. Является ли этот

файл корректным?

14. Ширина файла формата GIF является шестнадцатибитным целым числом с об-

ратным порядком байтов, которое начинается со смещения 6 байт. Его высота

имеет такой же размер и начинается со смещения 8 байт. Извлеките и выведите

на экран эти значения для переменной gif. Равны ли они 1?

8 Данные должны

куда-то попадать

Огромная ошибка — делать выводы, не имея

необходимой информации.

Артур Конан Дойль

Активная программа работает с данными, которые хранятся в запоминающем

устройстве с произвольным доступом (Random Access Memory (RAM)). RAM —

очень быстрая память, но она дорога и требует постоянного питания; если питание

пропадет, то все данные, которые в ней хранятся, будут утеряны. Жесткие диски

медленнее оперативной памяти, но они более емкие, стоят дешевле и могут хранить

данные даже после того, как кто-то выдернет шнур питания. Поэтому много усилий

при создании компьютерных систем направлено на поиск лучшего соотношения

между хранением данных на диске и в оперативной памяти. Как программистам,

нам нужна стойкость: хранение и получение данных с помощью энергонезависи-

мых медиа вроде дисков.

Эта глава посвящена разнообразным способам хранения данных, каждый из

которых оптимизирован для разных целей: плоским файлам, структурированным

файлам и базам данных. Операции с файлами, не касающиеся ввода-вывода, рас-

сматриваются в разделе «Файлы» главы 10.

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

Python — да-да, этот код не входит в стандартные библиотеки Python. Вы можете без особых

проблем установить их с помощью команды pip. Более подробно об использовании этих

модулей вы можете прочитать в приложении Г.

Ввод информации в файлы

и ее вывод из них

Самый простой пример стойкого хранилища — это старый добрый файл, иногда

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

байтов, которая хранится под именем файла. Вы считываете данные из файла

Ввод информации в файлы и ее вывод из них

211

в память и записываете данные из памяти в файл. Python позволяет делать это

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

рования, были смоделированы на основе знакомых и популярных аналогов, име-

ющихся в Unix.

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