Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих
Book information
Description
СОДЕРЖАНИЕ Об авторе О техническом рецензенте Введение Для кого предназначена эта книга Исходные предположения Что такое программирование Что такое Python Программисту не обязательно в совершенстве знать математику Учиться программированию никогда не поздно Программирование — творческий вид деятельности Структура книги Загрузка и установка Python Загрузка и установка Mu Запуск Mu Запуск IDLE Интерактивная оболочка Установка сторонних модулей Как получить справку Правильно формулируйте вопросы, ответы на которые ищете Файлы примеров Резюме Часть I Основы программирования на языке Python Глава 1. Основные понятия языка Python Ввод выражений в интерактивной оболочке Типы данных: целые числа, вещественные числа и строки Конкатенация и репликация строк Сохранение значений в переменных Операции присваивания Имена переменных Ваша первая программа Анализ программы Комментарии Функция print() Функция input() Вывод имени пользователя Функция len() Функции str(), int() и float() Резюме Контрольные вопросы Глава 2. Порядок выполнения программы Булевы значения Операторы сравнения Булевы операторы Бинарные булевы операторы Оператор not Сочетание операторов сравнения и булевых операторов Элементы структурирования программы Условия Блоки кода Выполнение программы Управляющие инструкции Инструкция if Инструкция else Инструкция elif Цикл while Инструкция break Инструкция continue Цикл for и функция range() Импорт модулей Инструкция from import Досрочное завершение программы с помощью функции sys.exit() Короткая программа: угадай число Короткая программа: камень, ножницы, бумага Резюме Контрольные вопросы Глава 3. Функции Инструкции def с параметрами Терминология функций Инструкция return и возвращаемые значения Значение None Именованные аргументы и функция print() Стек вызовов Локальная и глобальная области видимости Локальные переменные не могут использоваться в глобальной области видимости В локальных областях видимости не могут использоваться переменные из других локальных областей видимости Глобальные переменные доступны из локальной области видимости Локальные и глобальные переменные с одинаковыми именами Инструкция global Обработка исключений Короткая программа: зигзаг Резюме Контрольные вопросы Учебные проекты Последовательность Коллатца Проверка корректности ввода Глава 4. Списки Что такое список Доступ к элементам списка с помощью индексов Отрицательные индексы Получение фрагмента списка с помощью среза Определение длины списка с помощью функции len() Изменение элементов списка с помощью индексов Конкатенация и репликация списков Удаление значений из списка с помощью инструкции del Работа со списками Использование циклов for со списками Операторы in и not in Трюк с групповым присваиванием Использование функции enumerate() со списками Использование функций random, choice() и random, shuffle() со списками Комбинированные операторы присваивания Методы Поиск значения в списке с помощью метода index() Добавление значений в список с помощью методов append() и insert() Удаление значений из списка с помощью метода remove() Сортировка списка с помощью метода sort() Инверсия списка с помощью метода reverse() Пример программы: Magic 8 Ball со списком Списковые типы данных Изменяемые и неизменяемые типы данных Кортежи Преобразование типов с помощью функций list() и tuple() Ссылки Тождественность и функция id() Передача ссылок Функции сору() и deepcopy() Короткая программа: игра “Жизнь” Резюме Контрольные вопросы Учебные проекты Запятая в качестве разделителя Эксперименты с монетой Символьная сетка Глава 5. Словари Что такое словарь Сравнение словарей и списков Методы keys(), values() и items() Проверка наличия ключа или значения в словаре Метод get() Метод setdefault() Красивый вывод Использование структур данных для моделирования реальных объектов Поле для игры в “крестики-нолики” Вложенные словари и списки Резюме Контрольные вопросы Учебные проекты Валидатор словаря для игры в шахматы Инвентарь приключенческой игры Функция добавления списка в словарь для приключенческой игры Глава 6. Строки Работа со строками Строковые литералы Индексирование строк и извлечение срезов Использование операторов in и not in со строками Вставка строк в другие строки Полезные методы для работы со строками Методы upper(), lower(), isupper() и islower() Строковые методы isX() Методы startswith() и endswith() Методы join() и split() Разбиение строк с помощью метода partition() Выравнивание текста с помощью методов rjust(), ljust() и center() Удаление пробелов с помощью методов strip(), rstrip() и lstrip() Получение числовых значений символов с помощью функций ord() и chr() Копирование и вставка строк с помощью модуля pyperclip Проект: автоматическая рассылка сообщений с помощью нескольких буферов обмена Шаг 1. Проектирование программы и структур данных Шаг 2. Обработка аргументов командной строки Шаг 3. Копирование фразы в буфер Проект: добавление маркеров в разметку Wiki-документов Шаг 1. Копирование и вставка посредством буфера обмена Шаг 2. Разбивка текста на строки и добавление звездочек Шаг 3. Объединение измененных строк Короткая программа: поросячья латынь Резюме Контрольные вопросы Учебные проекты Табличный вывод данных Боты Zombie Dice Часть II. Автоматизация задач Глава 7. Регулярные выражения Поиск образцов текста без использования регулярных выражений Поиск образцов текста с помощью регулярных выражений Создание объектов Regex Поиск соответствий объектам Regex Пошаговая процедура Другие шаблоны регулярных выражений Создание групп с помощью круглых скобок Выбор альтернативных групп с помощью канала Указание необязательной группы с помощью вопросительного знака Указание группы, повторяющейся нуль или несколько раз, с помощью звездочки Указание группы, повторяющейся один или несколько раз, с помощью знака “плюс” Указание количества повторений с помощью фигурных скобок Жадный и нежадный виды поиска Метод findall() Символьные классы Создание собственных символьных классов Символ ^ и знак доллара Символ подстановки Поиск любого текста с помощью комбинации “точка — звездочка” Поиск символов новой строки с помощью точки Сводка синтаксиса регулярных выражений Поиск без учета регистра Замена строк с помощью метода sub() Работа со сложными регулярными выражениями Комбинация констант re.IGNORECASE, re.DOTALL и re.VERBOSE Проект: извлечение телефонных номеров и адресов электронной почты Шаг 1. Создание регулярного выражения для поиска телефонных номеров Шаг 2. Создание регулярного выражения для поиска адресов электронной почты Шаг 3. Поиск всех совпадений в тексте, скопированном в буфер обмена Шаг 4. Объединение совпадений в одну строку для копирования в буфер обмена Запуск программы Идеи для создания похожих программ Резюме Контрольные вопросы Учебные проекты Обнаружение даты Выявление сильных паролей Версия метода strip(), использующая регулярные выражения Глава 8. Проверка ввода Модуль PyInputPlus Именованные аргументы min, max, greaterThan и lessThan Именованный аргумент blank Именованные аргументы limit, timeout и default Именованные аргументы allowRegexes и blockRegexes Передача пользовательской функции проверки в функцию inputCustom() Проект: как занять дурака на несколько часов Проект: тест на умножение Резюме Контрольные вопросы Учебные проекты Изготовитель бутербродов Собственный тест на умножение Глава 9. Чтение и запись файлов Файлы и папки Использование обратной косой черты в Windows и косой черты в macOS и Linux Использование оператора / для объединения путей Текущий каталог Домашний каталог Абсолютные и относительные пути Создание новых папок с помощью функции os.makedirs() Обработка абсолютных и относительных путей Получение отдельных частей пути Определение размеров файлов и содержимого папок Изменение списка файлов с помощью шаблонов Проверка существования пути Процесс чтения и записи файлов Открытие файла с помощью функции open() Чтение содержимого файла Запись в файл Сохранение переменных с помощью модуля shelve Сохранение переменных с помощью функции pprint. pformat() Проект: генерирование случайных билетов Шаг 1. Сохранение данных в словаре Шаг 2. Создание файлов билетов и перемешивание вопросов Шаг 3. Создание вариантов ответов Шаг 4. Запись содержимого в файлы билетов и ключей ответов Проект: множественный буфер обмена Шаг 1. Комментарии и настройка хранилища Шаг 2. Сохранение содержимого буфера обмена с ключевым словом Шаг 3. Построение списка ключевых слов и загрузка содержимого, ассоциированного с ключевым словом Резюме Контрольные вопросы Учебные проекты Расширение возможностей множественного буфера обмена Программа Mad Libs Поиск с помощью регулярных выражений Глава 10. Управление файлами Модуль shutil Копирование файлов и папок Перемещение и переименование файлов и папок Безвозвратное удаление файлов и папок Безопасное удаление с помощью модуля send2trash Обход дерева каталогов Сжатие файлов с помощью модуля zipfile Чтение ZIP-файлов Извлечение файлов из ZIP-архива Создание ZIP-архивов и добавление в них файлов Проект: переименование файлов с заменой американского формата дат европейским Шаг 1. Создание регулярного выражения для поиска дат в американском формате Шаг 2. Идентификация фрагментов имен файлов, соответствующих датам Шаг 3. Создание нового имени файла и переименование файлов Идеи для создания похожих программ Проект: создание резервной копии папки в виде ZIP-файла Шаг 1. Определение имени, которое следует присвоить ZIP-файлу Шаг 2. Создание нового ZIP-файла Шаг 3. Обход дерева каталогов и добавление содержимого в ZIP-файл Идеи для создания похожих программ Резюме Контрольные вопросы Учебные проекты Выборочное копирование Удаление ненужных файлов Заполнение пропусков в нумерации файлов Глава 11. Отладка Генерирование исключений Сохранение обратной трассировки стека вызовов в виде строки Утверждения Использование утверждений в программе, имитирующей работу светофора Протоколирование Использование модуля logging Не выполняйте отладку с помощью функции print() Уровень протоколирования Отключение протоколирования Запись сообщений в файл журнала Отладчик Mu Кнопка Continue Кнопка Step In Кнопка Step Over Кнопка Step Out Кнопка Stop Отладка программы сложения чисел Точки останова Резюме Контрольные вопросы Учебный проект Отладка программы, имитирующей подбрасывание монеты Глава 12. Веб-скрейпинг Проект: программа mapIt.ру с модулем webbrowser Шаг 1. Определение URL-адреса Шаг 2. Обработка аргументов командной строки Шаг 3. Обработка содержимого буфера обмена и запуск браузера Идеи для создания похожих программ Загрузка файлов из Интернета с помощью модуля requests Загрузка веб-страницы с помощью функции requests.get() Проверка ошибок Сохранение загруженных файлов на жестком диске HTML Ресурсы для изучения HTML Краткие сведения об HTML Просмотр HTML-кода веб-страницы Открытие окна инструментов веб-разработки в браузере Использование инструментов веб-разработки для поиска HTML-элементов Парсинг HTML-разметки с помощью модуля bs4 Создание объекта BeautifulSoup на основе HTML-разметки Поиск элемента с помощью метода select() Получение данных из атрибутов элемента Проект: открытие всех результатов поиска Шаг 1. Получение аргументов командной строки и запрос поисковой страницы Шаг 2. Поиск всех результатов Шаг 3. Открытие браузера для каждого из результатов поиска Идеи для создания похожих программ Проект: загрузка всех комиксов на сайте XKCD Шаг 1. Проектирование программы Шаг 2. Загрузка веб-страницы Шаг 3. Поиск и загрузка изображения комикса Шаг 4. Сохранение изображения и поиск предыдущего комикса Идеи для создания похожих программ Управление браузером с помощью модуля selenium Запуск браузера под управлением Selenium Поиск элементов на веб-странице Щелчок на веб-странице Заполнение и отправка веб-форм Отправка кодов специальных клавиш Щелчки на кнопках браузера Получение дополнительной информации о модуле selenium Резюме Контрольные вопросы Учебные проекты Программа для отправки электронной почты из командной строки Загрузчик изображений из Интернета 2048 Верификация гиперссылок Глава 13. Работа с таблицами Excel Документы Excel Установка модуля openpyxl Чтение документов Excel Открытие документов Excel с помощью модуля openpyxl Получение списка листов рабочей книги Получение ячеек рабочих листов Преобразование буквенных и числовых обозначений столбцов Получение строк и столбцов рабочих листов Рабочие книги, листы и ячейки Проект: чтение данных электронной таблицы Шаг 1. Чтение электронной таблицы Шаг 2. Заполнение структуры данных Шаг 3. Запись результатов в файл Идеи для создания похожих программ Запись документов Excel Создание и сохранение документов Excel Создание и удаление рабочих листов Запись значений в ячейки Проект: обновление электронной таблицы Шаг 1. Создание структуры, содержащей данные для обновления Шаг 2. Проверка всех строк и обновление некорректных цен Идеи для создания похожих программ Настройка шрифтов ячеек Объекты Font Формулы Настройка строк и столбцов Настройка высоты строк и ширины столбцов Объединение и отмена объединения ячеек Закрепление областей Диаграммы Резюме Контрольные вопросы Учебные проекты Генератор таблиц умножения Программа для вставки пустых строк Транспонирование электронной таблицы Преобразование текстовых файлов в электронную таблицу Преобразование электронной таблицы в текстовые файлы Глава 14. Работа с приложением Google Таблицы Установка и настройка модуля EZSheets Получение файлов учетных данных и токенов Отзыв файла учетных данных Объекты Spreadsheet Создание, выгрузка и отображение электронных таблиц Атрибуты объекта Spreadsheet Загрузка и выгрузка электронных таблиц Удаление электронной таблицы Объекты Sheet Чтение и запись данных Создание и удаление листов Копирование листов Квоты приложения Google Таблицы Резюме Контрольные вопросы Учебные проекты Загрузка данных из приложения Google Формы Преобразование электронных таблиц в другие форматы Поиск ошибок в электронной таблице Глава 15. Работа с документами PDF и Word PDF-документы Извлечение текста из PDF-файлов Дешифровка PDF-документов Создание PDF-документов Проект: объединение выбранных страниц из многих PDF-документов Шаг 1. Поиск всех PDF-файлов Шаг 2. Открытие PDF-файлов Шаг 3. Добавление страниц Шаг 4. Сохранение результатов Идеи для создания похожих программ Документы Word Чтение документов Word Получение всего текста из файла .docx Стилевое оформление абзаца и объекты Run Создание документов Word с нестандартными стилями Атрибуты объекта Run Запись документов Word Добавление заголовков Добавление разрывов строк и страниц Добавление изображений Создание документов PDF на основе документов Word Резюме Контрольные вопросы Учебные проекты PDF-паранойя Персонализированные приглашения в виде документов Word Взлом паролей PDF-файлов методом грубой силы Глава 16. Работа с CSV-файлами и данными в формате JSON Модуль csv Объекты reader Чтение данных из объекта reader в цикле for Объекты writer Именованные аргументы delimiter и lineterminator Объекты DictReader и DictWriter Проект: удаление заголовков из CSV-файла Шаг 1. Цикл по всем CSV-файлам Шаг 2. Чтение CSV-файла Шаг 3. Запись CSV-файла без первой строки Идеи для создания похожих программ JSON и программные интерфейсы Модуль json Чтение данных JSON с помощью функции loads() Запись данных JSON с помощью функции dumps() Проект: получение текущего прогноза погоды Шаг 1. Определение местоположения с помощью аргумента командной строки Шаг 2. Загрузка данных JSON Шаг 3. Запись данных JSON и вывод прогноза погоды Идеи для создания похожих программ Резюме Контрольные вопросы Учебный проект Программа для преобразования данных из формата Excel в формат CSV Глава 17. Работа с датой и временем, планирование заданий и запуск программ Модуль time Функция time.time() Функция time.sleep() Округление чисел Проект: суперсекундомер Шаг 1. Создание программы для отслеживания времени Шаг 2. Отслеживание и вывод длительности замеров Идеи для создания похожих программ Модуль datetime Тип данных timedelta Пауза до наступления заданной даты Преобразование объектов datetime в строки Преобразование строк в объекты datetime Обзор функций Python для работы с датой и временем Многопоточность Передача аргументов целевой функции потока Проблемы параллелизма Проект: многопоточный загрузчик файлов с сайта XKCD Шаг 1. Модификация программы путем вынесения ее кода в функцию Шаг 2. Создание и запуск потоков выполнения Шаг 3. Ожидание завершения всех потоков Запуск других программ из Python Передача аргументов командной строки в функцию Popen() Планировщик заданий Windows, демон launchd и планировщик cron Открытие веб-сайтов с помощью Python Запуск других сценариев Python Открытие файлов приложениями, заданными по умолчанию Проект: простая программа обратного отсчета времени Шаг 1. Обратный отсчет Шаг 2. Воспроизведение звукового файла Идеи для создания похожих программ Резюме Контрольные вопросы Учебные проекты Наглядный секундомер Загрузка веб-комиксов по расписанию Глава 18. Отправка электронной почты и текстовых сообщений Отправка и получение электронной почты с помощью Gmail API Подключение Gmail API Отправка электронной почты через учетную запись Gmail Чтение электронной почты с помощью учетной записи Gmail Поиск почты в учетной записи Gmail Загрузка вложений из писем Gmail SMTP Отправка электронной почты по протоколу SMTP Подключение к серверу SMTP Отправка строки приветствия серверу SMTP Начало TLS-шифрования Регистрация на сервере SMTP Отправка письма Разрыв соединения с сервером SMTP IMAP Получение и удаление сообщений электронной почты по протоколу IMAP Подключение к серверу IMAP Регистрация на сервере IMAP Поиск сообщений Получение сообщений электронной почты и пометка их как прочитанных Получение адресов электронной почты из необработанных сообщений Получение тела письма из необработанного сообщения Удаление писем Разрыв соединения с сервером IMAP Проект: рассылка напоминаний об уплате членских взносов Шаг 1. Открытие файла Excel Шаг 2. Поиск всех членов клуба, не уплативших взнос Шаг 3. Отправка персональных напоминаний по электронной почте Отправка текстовых сообщений с помощью почтового шлюза SMS Отправка текстовых сообщений с помощью Twilio Создание учетной записи Twilio Отправка текстовых сообщений Проект: модуль “Черкни мне” Резюме Контрольные вопросы Учебные проекты Произвольное распределение заданий путем рассылки по электронной почте Напоминание о зонтике Автоматический отказ от подписки Дистанционное управление компьютером по электронной почте Глава 19. Работа с изображениями Основы компьютерной обработки изображений Цвета и значения RGBA Кортежи координат и прямоугольников Обработка изображений с помощью модуля Pillow Работа с объектами Image Обрезка изображений Копирование и вставка изображений в другие изображения Изменение размеров изображения Поворот и зеркальное отражение изображений Изменение отдельных пикселей Проект: добавление логотипа Шаг 1. Открытие изображения логотипа Шаг 2. Цикл по всем файлам и открытие изображений Шаг 3. Масштабирование изображений Шаг 4. Добавление логотипа и сохранение изменений Идеи для создания похожих программ Рисование на изображениях Рисование фигур Рисование текста Резюме Контрольные вопросы Учебные проекты Доработка основного проекта главы Поиск папок с фотографиями на жестком диске Персональные приглашения Глава 20. Управление клавиатурой и мышью Установка модуля PyAutoGUI Настройка доступности в rnacOS Контроль над клавиатурой и мышью Паузы и безопасное завершение работы Прекращение выполнения всех задач путем выхода из учетной записи Управление перемещениями мыши Перемещение указателя мыши Получение позиции указателя Управление взаимодействием с мышью Щелчки мышью Перетаскивание указателя мыши Прокрутка Планирование перемещений указателя Работа с экраном Получение снимка экрана Анализ снимка экрана Распознавание изображений Получение информации об окне Определение активного окна Другие способы получения информации об окнах Манипулирование окнами Управление клавиатурой Отправка строки, набранной на виртуальной клавиатуре Названия клавиш Нажатие и отпускание клавиш Горячие клавиши Настройка собственных сценариев GUI-автоматизации Обзор функций PyAutoGUI Проект: автоматическое заполнение формы Шаг 1. Составление плана действий Шаг 2. Настройка координат Шаг 3. Начало ввода данных Шаг 4. Обработка списков выбора и переключателей Шаг 5. Отправка формы и ожидание Отображение окон сообщений Резюме Контрольные вопросы Учебные проекты Как притвориться занятым Использование буфера обмена для чтения текстового поля Бот для отправки мгновенных сообщений Руководство по созданию игрового бота Приложение А. Установка сторонних модулей Утилита pip Инсталляция модулей Установка модулей для редактора Mu Приложение Б. Запуск программ Запуск программ в окне терминала Запуск сценариев Python в Windows Запуск сценариев Python в macOS Запуск сценариев Python в Ubuntu Linux Запуск сценариев Python с отключенными проверками Приложение В. Ответы на контрольные вопросы Глава 1 Глава 2 Глава 3 Глава 4 Глава 5 Глава 6 Глава 7 Глава 8 Глава 9 Глава 10 Глава 11 Глава 12 Глава 13 Глава 14 Глава 15 Глава 16 Глава 17 Глава 18 Глава 19 Глава 20 Предметный указатель
Similar books
Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих. (program disk)
2021 · 7Z
Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих
2021 · DJVU
Методология научных исследований и прикладной аналитики: Учебник. Изд. 5-е, дополн. и перераб. В 2 т. Т.2: Научные исследования: Мастерство и искусство научного мышления и научной работы / Methodology of Scientific Research and Practical Analytics: A Textbook: Fifth Edition. In two volumes. Vol.2: Scientific research: Art of scientific thinking and scientific work / Méthodologie de la recherche scientifique et de l’analytique appliquée: Manuel: Cinquième édition. En 2 tomes. T.2: Recherches scientifiques: Art de la pensée scientifique et du travail scientifique
2025 · PDF
Методы и понятия философии искусства: практикум : уровень подготовки кадров высшей квалификации: ассиснтурв-стажировка : специальности: 54.09.03 "Искусство дизайна (по видам)", 54.09.02 "Мастерство декоративно-прикладного искусства и народных промыслов (по видам)" : укрупненная группа специальностей: 54.00.00 "Изобразительное и прикладные виды искусств" : квалификация выпускника: "Преподаватель творческих дисциплин в высшей школе. Дизайнер", "Преподаватель творческих дисциплин в высшей школе. Художник декоративно-прикладного искусства" : форма обучения: очная
2022 · PDF
Разработка графического интерфейса пользователя информационной системы с использованием библиотеки QT: учебное пособие для студентов 1 курса направлений подготовки 09.04.02 "Информационные системы и технологии", 27.04.03 "Системный анализ и управление" очной формы обучения, 2 курса направления подготовки 10.05.03 "Информационная безопасность автоматизированных систем" очной формы обучения и 3 курса направления подготовки 09.03.02 "Информационные системы и технологии" очной и заочной форм обучения : учебное электронное издание
2021 · PDF
Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.) =: Archaeological Cultures of Siberia in the context of Cross-cultural contacts in Eurasia: dedicated to the 300th anniversary of the first scientific archaeological excavations in Siberia (1722) : материалы Международной археологической конференции молодых исследователей "Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.)" (Новосибирск, 21-25 ноября 2022 г.)
2022 · PDF
Трешниковские чтения - 2023. Современная географическая картина мира и технологии географического образования =: Treshnikov readings - 2023. Modern geographical global picture and technology of geographic education : материалы Всероссийской научно-практической конференции с международным участием, посвящённой памяти знаменитого российского океанолога, исследователя Арктики и Антарктики, академика Алексея Фёдоровича Трёшникова и 60-летию Ульяновского областного отделения Всероссийской общественной организации "Русское гаографическое общество" (13 апреля 2023)
2023 · PDF
Управление объектами интеллектуальной собственности. Искусство изобретать: учебник для обучающихся по направлениям подготовки 23.00.00 , направлениям подготовки 23.03.01 "Технология транспортных процессов", уровень образования-"бакалавриат", 23.03.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования-"бакалавриат", 23.04.01 "Технология транспортных процессов", уровень образования- "магистратура", 23.04.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования- "магистратура"
2022 · PDF