𝔖 Scriptorium
✦   LIBER   ✦

📁

Программирование на Python

✍ Scribed by Лутц М.


Publisher
Символ-Плюс
Year
2002
Tongue
Russian
Leaves
1135
Series
O'REILLY
Edition
2
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Перевод С. Маккавеева.

Python – это широко распространенный язык программирования, применяемый при решении многих важных задач, диапазон которых простирается от коммерческих сценариев установки Linux и программирования веб-приложений до анимации фильмов и создания спецэффектов. Он доступен на всех ведущих вычислительных платформах, в том числе на основных коммерческих версиях Unix, Linux, Windows и Mac OS. Кроме того, он является языком с открытым исходным кодом.
Второе издание самого известного бестселлера по Python, прорецензированное и одобренное Гвидо ван Россумом, создателем Python, представляет собой наиболее полный на сегодняшний день источник для серьезно программирующих на Python. Основное внимание здесь сосредоточено на практическом применении языка. Читатель обнаружит, что одна книга фактически содержит в себе четыре, которые глубоко освещают создание сценариев для Интернета, системное программирование, программирование GUI с использованием Tkinter и интеграцию с C. Кроме того, обсуждаются новые инструменты и приложения: Jython – версия Python, компилируемая в виде байт-кодов Java; расширения Active Scripting и COM; Zope – система веб-приложений с открытым исходным кодом; генераторы кода HTMLgen и SWIG; поддержка потоков; модули CGI и протоколов Интернета. В книге приводится большое количество примеров кода, которые вы сможете использовать при разработке на Python сложных приложений. Прилагается СD для платформ PC, Macintoch и Unix.

✦ Table of Contents


Оглавление
Вступительное слово
Предисловие ко второму изданию
Издание обновлено в соответствии с Python 2.0
Книга переориентирована на более подготовленную а
В книге раскрыты новые темы
Книга более ориентирована на примеры
Книга более нейтральна в отношении используемых п
Вкратце
Подробности
Где все это находится
Глава 1. Знакомство с Python
История жизни Python
Обязательный список характеристик
Где хорош Python?
Для чего Python не годится?
Часть I. Системные интерфейсы
Глава 2. Системные инструменты
Зачем здесь нужен Python?
Обзор системных сценариев
Системные модули Python
Источники документации по модулям
Постраничный вывод строк документации
Знакомство с модулем string
Основы операций с файлами
Два способа использования программ
Руководства по библиотекам Python
Коммерческие справочники
Модуль sys
Платформы и версии
Путь для поиска модулей
Таблица загруженных модулей
Сведения об исключительных ситуациях
Другие элементы, экспортируемые модулем sys
Модуль os
Большие списки os
Средства администрирования
Константы переносимости
Основные инструменты os.path
Выполнение команд оболочки из сценариев
Другие элементы, экспортируемые модулем os
Контекст выполнения сценария
Текущий рабочий каталог
CWD, файлы и пути для импорта
Текущий рабочий каталог и командные строки
Аргументы командной строки
Переменные окружения оболочки
Получение значений переменных оболочки
Изменение переменных оболочки
Стандартные потоки
Переадресация потоков в файлы и программы
Переадресация потоков объектам Python
Другие варианты переадресации
Средства для работы с файлами
Встроенные объекты файлов
Средства работы с файлами в модуле os
Сканеры файлов
Представление файлов как списков
Средства для работы с каталогами
Обход одного каталога
Обход деревьев каталогов
Сделаем собственный модуль find
Глава 3. Системные средства параллельного выполнения
Ветвление процессов
Комбинация fork/exec
Потоки
Модуль thread
Модуль threading
Завершение программ
Завершение работы с помощью модуля os
Коды состояния завершения
Завершение потоков
Межпроцессное взаимодействие
Каналы
Основы анонимных каналов
Двунаправленный IPC с помощью каналов
Именованные каналы (fifo)
Сигналы
Запуск программ под Windows
Вызов os.spawnv
Выполнение командных строк DOS
Структура переносимого запуска программ
Другие системные средства
Глава 4. Более крупные системные примеры, часть 1
Разрезание и соединение файлов
Разрезание файлов переносимым способом
Соединение файлов переносимым образом
Варианты использования
Создание веб-страниц со ссылками переадресации
Файл шаблона страницы
Сценарий генератора страниц
Сценарий регрессивного теста
Упаковка и распаковка файлов
Упаковка файлов «++»
Суперклассы иерархии приложения
Дружественные пользователю средства для запуска п
Клиенты модуля Launcher
Запуск программ без настроек окружения
Переносимый запуск веб-броузеров
Глава 5. Более крупные системные примеры, часть 2
Исправление концов строк в формате DOS
Преобразование концов строк в одном файле
Преобразование символов конца строки во всех файл
Преобразование концов строк в целом дереве
Исправление имен файлов DOS
Перезапись с помощью os.path.walk
Поиск в деревьях каталогов
grep и glob в оболочках и Python
Сценарии Python для поиска в дереве
Visitor: обобщенный обход деревьев
Редактирование файлов в деревьях каталогов
Глобальная замена в деревьях каталогов
Составление списка найденных файлов в деревьях ка
Корректировщики, использующие «обходчиков»
Корректировка прав доступа к файлам в деревьях
Копирование деревьев каталогов
Сценарий Python для копирования дерева
Переработка копировщика с использованием класса,
Удаление деревьев каталогов
Переработка удаления для придания общности
Сравнение деревьев каталогов
Поиск расхождений между каталогами
Нахождение различий между деревьями
Часть II. Программирование GUI
Глава 6. Графические интерфейсы пользователя
Темы программирования GUI
Варианты разработки GUI в Python
Обзор Tkinter
Документация Tkinter
Расширения Tkinter
Структура Tkinter
Взбираясь по кривой обучения GUI-программированию
«Hello World» в четыре строки (или меньше)
Основы кодирования на Tkinter
Варианты кодирования в Tkinter
Добавление кнопок и обратных вызовов
Добавление определяемых пользователем обработчико
Добавление нескольких графических элементов
Настройка графических элементов с помощью классов
Повторно используемые компоненты GUI и классы
Завершение начального обучения
Соответствие между Python/Tkinter и Tcl/Tk
Глава 7. Обзор Tkinter, часть 1
Темы, освещаемые в данной главе
Настройка внешнего вида графических элементов
Окна верхнего уровня
Графические элементы Toplevel и Tk
Протоколы окна верхнего уровня
Диалоги
Стандартные диалоги
Модуль Dialog для окон в старом стиле
Пользовательские диалоги
Привязка событий
Message и Entry
Message
Entry
Флажки, переключатели и ползунки
Флажки
Переключатели
Ползунки
Три способа выполнения кода GUI
Прикрепление к фреймам
Независимые окна
Запуск программ
Изображения
Развлечения с кнопками и картинками
Глава 8. Обзор Tkinter, часть 2
Меню
Меню окон верхнего уровня
Меню, основанные на фреймах и кнопках
Окна, содержащие меню и панель инструментов
Окна списков и полосы прокрутки
Программирование окон списков
Программирование полос прокрутки
Упаковка полос прокрутки
Text
Программирование графического элемента Text
Операции редактирования текста
Более сложные операции с тегами в Text
Графический элемент Canvas
Базовые операции с Canvas
Программирование графического элемента Canvas
Прокрутка холстов
События холстов
Сетки
Основы работы с сеткой
grid в сравнении с pack
Сочетание grid с pack
Обеспечение расширяемости графических элементов,
Создание с помощью grid более крупных таблиц
Средства синхронизации, потоки и анимация
Использование потоков с GUI
Применение метода after
Простые технологии анимации
Конец экскурсии
Запускающие программы PyDemos и PyGadgets
Панель запуска PyDemos
Панель запуска PyGadgets
Глава 9. Более крупные примеры GUI
Примеры в других главах
Стратегия данной главы
Более сложные приемы написания кода GUI
GuiMixin: использование общих методов «подмешивае
GuiMaker: автоматизация создания меню и панелей и
BigGui: программа демонстрации клиента
ShellGui: добавление GUI к инструментам командной
GuiStreams: перенаправление потоков данных элемен
Динамическая перегрузка обработчиков обратного вы
Примеры законченных программ
PyEdit: программа/объект текстового редактора
Запуск PyEdit
Исходный код PyEdit
PyView: слайд-шоу для графики и заметок
Выполнение PyView
Исходный код PyView
PyDraw: рисование и перемещение графики
Выполнение PyDraw
Исходный код PyDraw
PyClock: графический элемент аналоговых/цифровых
Краткий урок геометрии
Выполнение PyClock
Исходный код PyClock
PyToe: графический элемент игры в крестики-нолики
Выполнение PyToe
Исходный код PyToe (на CD)
Что дальше
Часть III. Создание сценариев для Интернета
Глава 10. Сетевые сценарии
Темы, относящиеся к сценариям для Интернета
Трубопровод для Интернета
Слой сокетов
Слой протоколов
Библиотечные модули Python для Интернета
Программирование сокетов
Основы сокетов
Обработка нескольких клиентов
Ветвление серверов
Многопоточные серверы
То же с помощью классов: структуры для создания с
Мультиплексирование серверов с помощью select
Выбор схемы сервера
Простой файловый сервер на Python
Выполнение файл-сервера и клиентов
Добавление графического интерфейса пользователя
Глава 11. Сценарии на стороне клиента
Передача файлов по Сети
FTP: загрузка Python с помощью Python
Утилиты FTP get и put
Загрузка сайтов (создание зеркальных копий)
Загрузка сайтов на сервер
Загрузка на сервер вместе с подкаталогами
Обработка электронной почты Интернета
POP: чтение e-mail
SMTP: отправка электронной почты
Почтовый клиент, выполняемый в командной строке
Раскодирование вложений в почтовых сообщениях
Почтовый клиент PyMailGui
Зачем нужен PyMailGui?
Запуск PyMailGui
Стратегия представления
Взаимодействие с PyMailGui
Реализация PyMailGui
Другие инструменты, используемые на стороне клиен
NNTP: доступ к телеконференциям
HTTP: доступ к сайтам
Прочие возможности создания сценариев клиентов
Глава 12. Сценарии, выполняемые на сервере
Что такое сценарий CGI для сервера?
Притаившийся сценарий
Создание сценариев CGI на Python
Запуск примеров сценариев, выполняемых на сервере
Взбираясь по кривой обучения CGI
Первая веб-страница
Первый CGI-сценарий
Добавление картинок и генерация таблиц
Добавление взаимодействия с пользователем
Задание структуры формы с помощью таблицы
Добавление стандартных инструментов ввода
Передача параметров в жестко закодированных URL
Селектор «Hello World»
Проверка отсутствующих или недопустимых данных
Код, облегчающий сопровождение
Шаг 1: совместное использование объектов разными
Шаг 2: многократно используемая утилита имитации
Шаг 3: объединим все вместе – новый сценарий отве
Снова об escape-преобразованиях HTML и URL
Соглашения по escape-кодам в URL
Средства Python для кодировки HTML и URL
Преобразование кода HTML
Преобразование URL
Преобразование URL, встроенных в код HTML
Отправка файлов клиентам и серверам
Отображение клиентом произвольных файлов сервера
Отправка файлов клиента на сервер
Способов протолкнуть байты через Сеть много
Глава 13. Более крупные примеры сайтов, часть 1
Веб-сайт PyMailCgi
Общий обзор реализации
Обзор представления программы
Корневая страница
Отправка почты по SMTP
Страница составления сообщений
Сценарий для отправки почты
Чтение почты POP
Страница ввода пароля POP
Страница выбора почты из списка
Страница просмотра сообщений
Страницы действий с сообщением
Вспомогательные модули
Внешние компоненты
Интерфейс почты POP
Шифрование паролей POP
Общий вспомогательный модуль
Недостатки и преимущества сценариев CGI
Глава 14. Более крупные примеры сайтов, часть 2
Веб-сайт PyErrata
Задачи системы
Обзор реализации
Стратегия представления
Корневая страница
Просмотр сообщений PyErrata
Интерфейс пользователя: просмотр сообщений с комм
Интерфейс пользователя: просмотр сообщений об оши
Использование в PyErrata явных URL
Реализация: просмотр сообщений с комментариями
Реализация: просмотр сообщений об ошибках
Общие вспомогательные модули для просмотра
Передача сообщений в PyErrata
Интерфейс пользователя: передача сообщений с комм
Интерфейс пользователя: передача сообщений об оши
Реализация: передача сообщений с комментариями
Реализация: передача сообщений об ошибках
Общий вспомогательный модуль submit
Интерфейсы баз данных PyErrata
Призрак одновременных обновлений
Структура хранилища базы данных
Переключатель баз данных
Классы для файлов и объектов shelve, специфичные
Класс интерфейса базы данных верхнего уровня
Взаимные исключения для файлов shelve
Средства администрирования
Средства создания резервных копий
Средства отображения
Средства изменения статуса сообщения
Проектирование с учетом повторного использования
Возможность повторного использования
Масштабируемость
Глава 15. Более сложные темы Интернета
Zope: среда для создания публикаций в веб
Компоненты Zope
Что такое публикация объектов?
HTMLgen: веб-страницы, создаваемые объектами
Краткий учебник по HTMLgen
JPython (Jython): Python для Java
Краткое знакомство с JPython
Простой пример использования JPython
Приемы автоматизации интерфейсов
Создание апплетов Java с помощью JPython
Преимущества и недостатки JPython
Выбирая Python
Grail: веб-броузер на основе Python
Простой пример апплета Grail
Ограниченный режим выполнения Python
Использование rexec
Средства обработки XML
Расширения для веб-сценариев в Windows
Active Scripting: встраивание на стороне клиента
Active Server Pages: встраивание кода в сценарии
Соединение через COM
Python Server Pages
Создание собственных серверов на Python
Программные решения
Готовые решения
Часть IV. Разные темы
Глава 16. Базы данных и постоянное хранение
Возможности постоянного хранения данных в Python
Файлы DBM
Работа с файлами DBM
Сериализованные объекты
Применение сериализации объектов
Файлы shelve
Использование полок
Сохранение объектов встроенных типов
Хранение экземпляров классов
Изменение классов хранимых объектов
Ограничения shelve
Интерфейсы баз данных SQL
Обзор интерфейса
Ресурсы
PyForm: средство просмотра постоянных объектов
Делаем трудным способом
Делаем в графическом режиме
Глава 17. Структуры данных
Реализация стеков
Модуль stack
Класс stack
Индивидуальная настройка: мониторы производительн
Оптимизация: стеки дерева кортежей
Оптимизация: модификация списка по месту
Хронометраж усовершенствований
Реализация множеств
Функции множеств
Классы множеств
Оптимизация множеств: переход на словари
Программные приемы оптимизации fastset
Алгебра отношений для множеств (CD)
Двоичные деревья поиска
Поиск на графах
Перевод графов на классы
Реверсирование последовательностей
Перестановки последовательностей
Сортировка последовательностей
Добавление функций сравнения
Структуры данных в сравнении со встроенными типам
PyTree: общее средство просмотра деревьев объекто
Работа с PyTree
Исходный код Pytree
Pytree тоже производит анализ деревьев
Глава 18. Текст и язык
Стратегии синтаксического анализа в Python
Средства модуля string
Суммирование по колонкам в файле
Синтаксический разбор строк правил и обратное пре
Поиск регулярных выражений
Использование модуля re
Основные образцы
Поиск образцов в файлах заголовков C
Утилита для поиска в файлах по образцу
Генераторы парсеров
Парсеры, написанные вручную
Грамматика выражения
Код парсера
Добавление интерпретатора дерева синтаксического
Структура дерева синтаксического разбора
Исследование деревьев синтаксического разбора с п
Парсеры в сравнении с Python
PyCalc: программа/объект калькулятора
GUI простого калькулятора
Pycalc – GUI реального калькулятора
Часть V. Интеграция
Глава 19. Расширяем Python
Темы, относящиеся к интеграции
Обзор расширений на C
Простой модуль расширения на C
Компиляция и компоновка
Анатомия модуля расширения на C
Преобразование данных
Обработка ошибок
Счетчики ссылок
SWIG – генератор интегрирующего кода
Простой пример SWIG
Подробности о SWIG
Создание оболочек для вызовов окружения C
Но не делайте этого – SWIG
Стек строк модуля расширения на C
Но и этого тоже не делайте – SWIG
Тип стека строк: расширение на C
Анатомия типа, расширенного на C
Компиляция и выполнение
Хронометраж реализаций на C
Классы-оболочки для типов C
Но этого тоже ненужно делать – пользуйтесь SWIG
Создание оболочек классов C++ с помощью SWIG
Маленький (но не слишком) класс C++
Создание оболочки для класса на C++ с помощью SWI
Использование класса C++ в Python
Глава 20. Встраиваем Python
Обзор API встраивания в C
Что представляет собой встроенный код?
Основные приемы встраивания кода
Выполнение простых строк кода
Выполнение строк кода с использованием результато
Вызов объектов Python
Выполнение строк в словарях
Предварительная компиляция строк в байт-код
Регистрация объектов для обработки обратных вызов
Использование в C классов Python
ppembed: API высокого уровня для встраивания
Выполнение объектов с помощью ppembed
Выполнение строк кода с помощью ppembed
Выполнение настраиваемых проверок
Реализация ppembed
Другие примеры интеграции, имеющиеся на CD
Другие темы интеграции
Интеграция с помощью JPython (или Jython)
Интеграция в Windows с помощью COM
Интеграция CORBA
Интеграция против оптимизации
Часть VI. Финал
Глава 21. Заключение: Python и цикл разработки
«Как-то мы неправильно программируем компьютеры»
«Фактор Гиллигана»
Делать Правильное Дело
Цикл разработки для статических языков
Искусственные сложности
Одним языком не угодишь всем
И тут появляется Python
А как насчет того узкого места?
Python обеспечивает цикл разработки без промежуто
Python служит «выполняемым псевдокодом»
Python – это правильное ООП
Python способствует созданию гибридных приложений
По поводу потопления «Титаника»
Так что же такое Python: продолжение
Заключительный анализ...
Эпилог ко второму изданию
Интеграция – еще не все
Конец войн с Java
Нам все еще не удалось выбраться с того острова
Приложение А. Последние изменения в Python
Изменения в базовом языке
Отдельные изменения в библиотеке
Изменения в API интеграции Python/C
Изменения для Windows
Несовместимость
Изменения в базовом языке
Отдельные изменения в библиотечных модулях
Некоторые изменения в утилитах
Изменения в базовом языке
Изменения в библиотеках
Изменение в инструментарии
Изменения в API интеграции Python/C
Приложение В. Прагматика
Windows
Unix и Linux
Macintosh и другие
Пакет с примерами книги
Выполнение сценариев для запуска демонстрационных
Переменные оболочки
Установки конфигурации
Конфигурирование из программы
Приложение С. Python и C++
Алфавитный указатель
Пустая страница


📜 SIMILAR VOLUMES


Программирование на Python
✍ Марк Лутц 📂 Library 📅 2002 🏛 Символ 🌐 Russian

Второе издание самого известного бестселлера по Python служит наиболее полным на сегодняшний день источником для тех, кто серьезно программирует на Python. Издание прорецензировано и одобрено Гвидо ван Россумом, создателем Python. С момента выхода первого издания этой книги Python стал широко распр

Программирование на Python.
✍ Марк Лутц 📂 Library 📅 2011 🏛 Символ-Плюс 🌐 Russian

Монументальный труд Марка Лутца «Программирование на Python» в 2-х томах представляет собой учебник по применению языка Python для решения наиболее типичных задач в различных прикладных областях. В нем рассказывается о применении языка Python в системном администрировании, для создания графических и

Программирование на Python.
✍ Марк Лутц 📂 Library 📅 2011 🏛 Символ-Плюс 🌐 Russian

Монументальный труд Марка Лутца «Программирование на Python» в 2-х томах представляет собой учебник по применению языка Python для решения наиболее типичных задач в различных прикладных областях. В нем рассказывается о применении языка Python в системном администрировании, для создания графических и

Программирование на Python
✍ Марк Лутц 📂 Library 📅 2011 🏛 Символ-Плюс, O’Reilly 🌐 Russian

Вы овладели основами Python. Что дальше? Эта книга представляет собой подробное руководство по применению этого языка программирования в основных прикладных областях - системном администрировании, создании графических интерфейсов и веб-приложений. Исследуются приемы работы с базами данных, программи