ПРАКТИЧЕСКОЕ РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ЭЛ СВЕЙГАРТ AUTOMATE ТНЕ BORING STUFF WITH PYTHON Practical Programming for Total Beginners Ьу AL SwEiGART no starch press San Francisco АВТОМАТИЗАЦИЯ PVTИHHblX ЗАДАЧ С ПОМОЩЬЮ PYTHON Практическое руководство для начинающих Эл СвЕиrдрт • Москва• Санкт-Петербург• Киев 2017 ББК 32.973.26-018.2.75 УДК 681.3.07 С24 Издательский дом "Вильяме" Iлавный редактор С.Н. Трuгуб Зав. редакцией В.Р Ги,избуjJг Перевод с английского и редакция канд. хим. наук A.J: Jущкевu,ча По общим вопросам обращайтесь в Издательский дом "Вильяме" по адресу: iпfo@williaшspuЫisblнg.coш, 11ttp:/ /www.williaшspнЫishiпg.coш Свейгарт, Эл. С24 Автоматиз.'lция рутинных задач с помощью РуtJюп: практическое руково;~ство дпя начинающих.: Пер. с англ. - М.: ООО "ИД. Вильяме", 2017. -592 с.: ил. - Парал.1ит. англ. ISBN 978-5-8459-2090-4 (рус.) ББК 32.973.26-018.2.75 Вес названия программных продуктов являются зарегистрированными торговыми марками со­ ответствующих фир~1. Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель. если на зто нет письменного разреше- ния издательства No Starch Press. · of the Eпglbl1 editio11 of' Aulomale tJte В01iпд Stuff шith I)·llюn: Practiral Pюgmmminl(for TiJtal Be,r!Jnner:s (ISBN 978-1-593-27599-О) <f) 20 l:i l>y А1 Sweiga1·r. Тl1is tгaнslatioп is puЫisl1ed апd sold Ьу pet·missioп of' No Staгcl1 Pгcss. wl1kl1 owпs 01· coпtгols all 1·igl1ts to publisl1 анd sell the same. All гigl1ts геsеп·сd. No pa1·t of tl1is book may Ье repюduce<I or 11·ans111ittcd iп апу fош1 01· Ьу any шeans, electi-oпic 01· 111ecl1a11ical. iпcludiпg photocopyiпg. 1·ec01·di11g, or Ьу а11у iпfoгmatioп stoгage or 1·e11·ieval svsteш. witlюнt tl1e р1;01· ¼Titteп peпnissio11 of tl1c l'opp;ght оwнсг апd the Publisheг. Aнtlюrizect Rнssiaп tгaпslatioп Книга от11ечатана ('Оглашо договору с ООО "ПРИМСI IАБ". На)''lНо-nоn)'Л.Ярное издание ЭлСвейгарт Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих Литературный редактор Верстка Художественный редактор Корректоры Л.Н. Красножон Л.В. Черщжозинская В.!: Павлютин Л.А. Гордиенжо Подписано в печать 05.08.2016. Формат 7Ох100/16 Усл. печ.л. 47,73. Уч.-изд. л. 27,4. Тираж 400 экз. Заказ № 8141 Отпечатано в АО "Первая Образцовая типография" Филиал "Чеховский Печатный Двор'' 142300, Московская область, 1: ООО "И. Д. Вильяме", ISBN 978-5-8459-2090-4 (рус.) ISBN 978-1-593-27599-О (ашл.) 12705:i, г. Чехов, ул. Полиrрафипо11, д.1 Москва, ул. Лесная, д. © 2016 @ 43. стр. l Издательский дом "Вильяме" 2015 hy Al Sweigaгt оrЛАВЛЕНИЕ 25 Введение Часть 1. Основы программирования на языке Python Глава 1. Основные понятия языка Python Глава 2. Поток управления Глава 3. Функции Глава 4. Списки Глава 5. Словари и структурирование данных Глава 6. Манипулирование строками Часть 11. Автоматизация задач Глава 7. Поиск по шаблону с помощью регулярных выражений Глава 8. Чтение и запись файлов Глава 9. Управление файлами Глава 10. Отладка Глава 11. Автоматический сбор данных в Интернете Глава 12. Работа с электронными таблицами Excel Глава 13. Работа с документами в форматах PDF и Word Глава 14. Работа с СSV-файлами и данными в формате JSON Глава 15. Обработка значений даты и времени, планировщик заданий и запуск программ Глава 16. 39 41 61 95 115 145 165 189 191 223 253 275 299 337 373 403 423 Отправка сообщений электронной почты и текстовых сообщений Глава 17. Работа с изображениями Глава 18. Управление клавиатурой и мышью с помощью средств автоматизации графического интерфейса пользователя Приложение А. Установка модулей сторонних разработчиков Приложение Б. Запуск программ Приложение В. Ответы на контрольные вопросы Предметный указатель 457 491 525 559 561 565 581 СОДЕРЖАНИЕ Об авторе 23 23 О техническом рецензенте Введение 25 25 26 27 Для кого предназначена эта книга Исходные предположения Что такое программирование Что означает название Python Программисту вовсе не обязательно в совершенстве знать математику Программирование - творческий вид деятельности Структура книги Загрузка и установка Руtlюн Запуск 1D LE Интерактивная оболочка Как получить справку Правильно формулируйте вопросы, ответы на которые ищете Резюме Часть Глава 1. Основы программирования на языке Python 1. Основные понятия языка Python 28 28 30 30 32 34 34 35 36 38 39 Ввод выражений в интерактивной оболочке 41 41 Типы данных: целые числа, вещественные числа, строки 45 Конкатенация и репликация строк 46 Сохранение значений в переменных Инструкции присваивания 47 47 Имена переменных 49 Ваша первая программа 51 Анализ программы 52 Комментарии 53 Функция 53 Функция print () input () Вывод имени пользователя Функция Функции len (} str (), int (} и float () 54 54 54 55 Резюме 59 Контрольные вопросы 59