ebook img

Программирование на Python, Том 1 PDF

991 Pages·2011·12.459 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Программирование на Python, Том 1

Эффективное объектно-ориентированное программирование ох 4- ва е т и ы з Программирование на Python, том I ва д е а т н P и Вы овладели основами Python. Что дальше? Эта книга представляет собой подробное yt е четвертое издание h руководство по применению языка программирования в основных прикладных o n областях – системном администрировании, создании графических интерфейсов том I 3.Х и веб-приложений. Исследуются приемы работы с базами данных, приемы програм- Программирование на мирования сетевых взаимодействий, создания интерфейсов для сценариев, обра- ботки текста и многие другие. В книге кратко и ясно описываются синтаксис языка и методики разработки, вклю- чено большое количество примеров, иллюстрирующих типичные идиомы програм- н П Python мирования и корректное их применение. Кроме того, исследуется эффективность Python в качестве инструмента разработки программного обеспечения, в отличие от а р просто инструмента «создания сценариев». В четвертое издание включено описание новых особенностей языка, биб лиотек и практических приемов программирования P о для Python 3.X. Примеры, представленные в книге, опробованы под третьей альфа- y г версией Python 3.2. t р В первом томе рассматриваются следующие темы: h • Краткий обзор языка Python. Простой демонстрационный пример, иллюст- а ри рующий приемы ООП, способы представления данных, сохранения объектов, o м создания графических интерфейсов и основы веб-разработки. n • Системное программирование. Исследуются инструменты доступа к систем- м том I ным интерфейсам и приемы создания сценариев командной строки, обработки файлов и папок, параллельного выполнения программ и многие другие. и • Программирование графических интерфейсов. Демонстрируется исполь- р зо вание библиотеки виджетов tkinter, входящей в состав стандартной библиотеки Python, для создания законченных пользовательских интерфейсов. о «В этой книге вы найдете все – от приемов отладки до рекомендаций по проекти- в рованию, что поможет вам решать масштабные задачи и обходить типичные а препятствия.» Диана Донован (Diane Donovan), California Bookwatch н Марк Лутц (Mark Lutz) является ведущим специалистом в области обучения языку и Python. Вот уже 25 лет Марк занимается разработкой программного обеспечения и является автором предыдущих изданий книги «Программирование на Python», е а также книг «Изучаем Python» и «Python Pocket Reference», выпущенных издатель- ством O’Reilly. Категория: программирование Издательство «Символ-Плюс» Уровень подготовки читателей: средний (812) 380-5007, (495) 638-5305 Л у т ц ISBN 978-5-93286-210-0 www.symbol.ru Марк Лутц 9 785932 862100 Python_progr_cover_tom-1_PonD.indd 1 20.09.2011 17:06:32 Programming Python Forth Edition Mark Lutz Программирование Python на I том Четвертое издание Марк Лутц Санкт-Петербург – Москва 2011 Марк Лутц Программирование на Python, том I, 4-е издание Перевод А. Киселева Главный редактор А. Галунов Зав. редакцией Н. Макарова Выпускающий редактор П. Щеголев Редактор Ю. Бочина Корректор С. Минин Верстка К. Чубаров Лутц М. Программирование на Python, том I, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2011. – 992 с., ил. ISBN 978-5-93286-210-0 Вы овладели основами Python. Что дальше? Эта книга представляет собой по- дробное руководство по применению этого языка программирования в основ- ных прикладных областях – системном администрировании, создании графи- ческих интерфейсов и веб-приложений. Исследуются приемы работы с базами данных, программирования сетевых взаимодействий, создания интерфейсов для сценариев, обработки текста и многие другие. Издание описывает синтаксис языка и методики разработки, содержит боль- шое количество примеров, иллюстрирующих типичные идиомы программи- рования и корректное их применение. Кроме того, исследуется эффективность Python в качестве инструмента разработки программного обеспечения, в отли- чие от просто инструмента «создания сценариев». В четвертое издание включено описание новых особенностей языка, биб лиотек и практических приемов программирования для Python 3.X. Примеры, пред- ставленные в книге, опробованы под третьей альфа-версией Python 3.2. Можно смело утверждать, что это обстоятельная и всесторонняя книга предна- значена быть первой ступенью на пути овладения мастерством разработки при- ложений на языке Python. ISBN 978-5-93286-210-0 ISBN 978-0-596-15810-1 (англ) © Издательство Символ-Плюс, 2011 Authorized translation of the English edition © 2011 O’Reilly Media Inc. This trans- lation is publ ished and sold by permission of O’Reilly Media Inc., the owner of all rights to publish and sell the same. Все права на данное издание защищены Законодательством РФ, включая право на полное или час- тичное воспроизведение в любой форме. Все товарные знаки или зарегистрированные товарные зна- ки, упоминаемые в настоящем издании, являются собственностью соответствующих фирм. Издательство «Символ-Плюс». 199034, Санкт-Петербург, 16 линия, 7, тел. (812) 380-5007, www.symbol.ru. Лицензия ЛП N 000054 от 25.12.98. Подписано в печать 31.07.2011. Формат 70×100 1/16. Печать офсетная. Объем 62 печ. л. Python-Prog-4ed_titul.indd 4 01.08.2011 18:06:11 Оглавление Предисловие ...........................................................................15 «А теперь нечто совершенно иное...» .......................................15 Об этой книге .......................................................................16 О четвертом издании .............................................................18 Влияние Python 3.X на эту книгу ............................................26 Использование примеров из книги ..........................................31 Как связаться с издательством O’Reilly ....................................33 Типографские соглашения .....................................................34 Благодарности ........................................................................35 Об авторе ...............................................................................38 Часть I. Начало ..........................................................................39 Глава 1. Предварительный обзор .............................................41 «Программирование на Python»: краткий очерк .......................41 Постановка задачи ................................................................42 Шаг 1: представление записей ................................................43 Списки ............................................................................43 Словари ..........................................................................48 Шаг 2: сохранение записей на длительное время .......................54 Текстовые файлы .............................................................55 Модуль pickle ...................................................................61 Работа модуля pickle с отдельными записями .......................64 Модуль shelve ..................................................................66 Шаг 3: переход к ООП ............................................................69 Использование классов .....................................................71 Добавляем поведение ........................................................73 Добавляем наследование ...................................................74 Реструктуризация программного кода .................................75 Добавляем возможность сохранения ...................................79 Другие разновидности баз данных ......................................81 Шаг 4: добавляем интерфейс командной строки ........................83 Шаг 5: добавляем графический интерфейс ...............................86 6 Оглавление Основы графических интерфейсов ......................................87 ООП при разработке графических интерфейсов .....................89 Получение ввода от пользователя .......................................92 Графический интерфейс к хранилищу .................................94 Шаг 6: добавляем веб-интерфейс ...........................................102 Основы CGI ....................................................................103 Запуск веб-сервера ..........................................................106 Использование строки запроса и модуля urllib ....................109 Форматирование текста ответа .........................................110 Веб-интерфейс к хранилищу с данными .............................111 Конец демонстрационного примера .......................................123 Часть II. Системное программирование ................................127 Глава 2. Системные инструменты ..........................................129 «os.path - дорога к знанию» .................................................129 Зачем здесь нужен Python? ..............................................129 В следующих пяти главах ................................................130 Знакомство с разработкой системных сценариев .....................132 Системные модули Python ...............................................133 Источники документации по модулям ...............................134 Постраничный вывод строк документации .........................135 Сценарий постраничного вывода.......................................137 Основы использования строковых методов .........................138 Другие особенности строк в Python 3.X: Юникод и тип bytes ........................................................ 141 Основы операций с файлами ............................................142 Два способа использования программ ...............................143 Руководства по биб лиотекам Python ..................................144 Коммерческие справочники .............................................145 Модуль sys ........................................................................146 Платформы и версии ......................................................146 Путь поиска модулей ......................................................146 Таблица загруженных модулей ........................................148 Сведения об исключениях ...............................................149 Другие элементы, экспортируемые модулем sys .................150 Модуль os ..........................................................................150 Инструменты в модуле os .................................................151 Средства администрирования ...........................................152 Константы переносимости ...............................................153 Основные инструменты os.path ........................................153 Выполнение команд оболочки из сценариев .......................156 Другие элементы, экспортируемые модулем os ..................163 Оглавление 7 Глава 3. Контекст выполнения сценариев ...............................167 «Ваши аргументы, пожалуйста!» ..........................................167 Текущий рабочий каталог ...................................................168 Текущий рабочий каталог, файлы и путь поиска модулей ....168 Текущий рабочий каталог и командные строки ..................170 Аргументы командной строки ..............................................171 Анализ аргументов командной строки ...............................172 Переменные окружения оболочки .........................................175 Получение значений переменных оболочки ........................176 Изменение переменных оболочки .....................................177 Особенности переменных оболочки: родители, putenv и getenv ................................................179 Стандартные потоки ввода-вывода ........................................180 Перенаправление потоков ввода-вывода в файлы и программы .....................................................181 Перенаправление потоков и взаимодействие с пользователем ....................................187 Перенаправление потоков в объекты Python .......................192 Вспомогательные классы io.StringIO и io.BytesIO ...............196 Перехват потока stderr ....................................................197 Возможность перенаправления с помощью функции print ....197 Другие варианты перенаправления: еще раз об os.popen и subprocess ........................................198 Глава 4. Инструменты для работы с файлами и каталогами ....206 «Как очистить свой жесткий диск за пять простых шагов» .......206 Инструменты для работы с файлами .....................................206 Модель объекта файла в Python 3.X ..................................207 Использование встроенных объектов файлов ......................209 Двоичные и текстовые файлы ...........................................220 Низкоуровневые инструменты в модуле os для работы с файлами .....................................................233 Сканеры файлов .............................................................239 Инструменты для работы с каталогами ..................................243 Обход одного каталога .....................................................243 Обход деревьев каталогов ................................................249 Обработка имен файлов в Юникоде в версии 3.X: listdir, walk, glob .........................................254 Глава 5. Системные инструменты параллельного выполнения ..................................................258 «Расскажите обезьянам, что им делать» ................................258 Ветвление процессов ...........................................................260 Комбинация fork/exec .....................................................264 Потоки выполнения ............................................................270 8 Оглавление Модуль _thread ..............................................................274 Модуль threading............................................................287 Модуль queue .................................................................293 Графические интерфейсы и потоки выполнения: предварительное знакомство ............................................298 Подробнее о глобальной блокировке интерпретатора (GIL) ......................................................302 Завершение программ .........................................................306 Завершение программ средствами модуля sys .....................306 Завершение программ средствами модуля os ......................307 Коды завершения команд оболочки ...................................308 Код завершения процесса и совместно используемая информация .............................312 Код завершения потока и совместно используемая информация .............................314 Взаимодействия между процессами .......................................316 Анонимные каналы ........................................................318 Именованные каналы (fifo) ..............................................331 Сокеты: первый взгляд ....................................................335 Сигналы ........................................................................340 Пакет multiprocessing .........................................................343 Зачем нужен пакет multiprocessing?..................................344 Основы: процессы и блокировки .......................................346 Инструменты IPC: каналы, разделяемая память и очереди ...349 Запуск независимых программ .........................................357 И многое другое ..............................................................359 Зачем нужен пакет multiprocessing? Заключение ................361 Другие способы запуска программ .........................................362 Семейство функций os.spawn ...........................................362 Функция os.startfile в Windows ........................................366 Переносимый модуль запуска программ ................................368 Другие системные инструменты ............................................374 Глава 6. Законченные системные программы ........................376 «Ярость поиска» .................................................................376 Игра: «Найди самый большой файл Python» ...........................377 Сканирование каталога стандартной биб лиотеки ................377 Сканирование дерева каталогов стандартной библиотеки .....378 Сканирование пути поиска модулей ..................................379 Сканирование всего компьютера .......................................382 Вывод имен файлов с символами Юникода .........................387 Разрезание и объединение файлов .........................................390 Разрезание файлов переносимым способом .........................391 Соединение файлов переносимым образом .........................395 Оглавление 9 Варианты использования .................................................399 Создание веб-страниц для переадресации ...............................403 Файл шаблона страницы .................................................404 Сценарий генератора страниц ...........................................405 Сценарий регрессивного тестирования ...................................408 Запускаем тестирование ..................................................411 Копирование деревьев каталогов ...........................................417 Сравнение деревьев каталогов ..............................................422 Поиск расхождений между каталогами .............................422 Поиск различий между деревьями ....................................425 Запускаем сценарий........................................................428 Проверка резервных копий ..............................................431 Отчет о различиях и другие идеи ......................................433 Поиск в деревьях каталогов ..................................................435 grep, glob и find ..............................................................436 Создание собственного модуля find ...................................437 Удаление файлов с байт-кодом .........................................442 Visitor: обход каталогов «++» ...............................................448 Редактирование файлов в деревьях каталогов (Visitor).........454 Глобальная замена в деревьях каталогов (Visitor) ...............456 Подсчет строк исходного программного кода (Visitor) ..........458 Копирование деревьев каталогов с помощью классов (Visitor) .............................................460 Другие примеры обходчиков (внешние) .............................462 Проигрывание медиафайлов .................................................464 Модуль webbrowser .........................................................468 Модуль mimetypes ..........................................................470 Запускаем сценарий........................................................473 Автоматизированный запуск программ (внешние примеры) .....473 Часть III. Программирование графических интерфейсов ....477 Глава 7. Графические интерфейсы пользователя ....................479 «Я здесь, я смотрю на тебя, детка» ........................................479 Темы программирования GUI ...........................................479 Запуск примеров ............................................................481 Различные возможности создания GUI в Python ......................483 Обзор tkinter ......................................................................490 Практические преимущества tkinter ................................490 Документация tkinter .....................................................492 Расширения для tkinter ...................................................492 Структура tkinter ...........................................................495 Взбираясь по кривой обучения программированию графических интерфейсов ........................497

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.