Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Глава 7. Работаем с данными профессионально . . . . . . . . . . . . . . 180
Текстовые строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Формат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Совпадение с регулярными выражениями . . . . . . . . . . . . . . . . . . . . 192
Оглавление
13
Бинарные данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
bytes и bytearray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Преобразуем бинарные данные с помощью модуля struct . . . . . . . . . 202
Другие инструменты для работы с бинарными данными . . . . . . . . . . 205
Преобразование байтов/строк с помощью функции binascii() . . . . . . 206
Битовые операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Глава 8. Данные должны куда-то попадать . . . . . . . . . . . . . . . . . . . 210
Ввод информации в файлы и ее вывод из них . . . . . . . . . . . . . . . . . . . . 210
Запись в текстовый файл с помощью функции write() . . . . . . . . . . . 211
Считываем данные из текстового файла с помощью
функций read(), readline() и readlines() . . . . . . . . . . . . . . . . . . . . 213
Записываем данные в бинарный файл с помощью функции write() . . . 215
Читаем бинарные файлы с помощью функции read() . . . . . . . . . . . . 216
Закрываем файлы автоматически с помощью ключевого
слова with . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Меняем позицию с помощью функции seek() . . . . . . . . . . . . . . . . . . 216
Структурированные текстовые файлы . . . . . . . . . . . . . . . . . . . . . . . . . . 218
CSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
YAML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Безопасность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Конфигурационные файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Другие форматы обмена данными . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Сериализация с помощью pickle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Структурированные бинарные файлы . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Электронные таблицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
HDF5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Реляционные базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
DB-API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
14
Оглавление
SQLite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
SQLAlchemy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Хранилища данных NoSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Семейство dbm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244