Автоматизация повторяющихся задач, на которые не стоит тратить время
Возможно, мы все можем вспомнить знаменательный момент в нашей карьере в области науки о данных, когда нам пришлось потратить большую часть дня на создание множества повторяющихся и утомительных отчетов, которые в противном случае могли бы быть созданы автоматически. Само собой разумеется, что ваше время гораздо ценнее, чем необходимость заниматься надоедливой работой по заполнению таблиц и написанию заголовков, подзаголовков и нумерации рисунков. Наслаждайтесь моментом, занимаясь чем-то чуть более целенаправленным, например, читая TDS или изучая новейшие фреймворки, доступные для бессерверных вычислений. Буквально все, кроме заполнения этих надоедливых строк и столбцов.
Python-docx
К счастью, есть пакет, способный исправить наше затруднительное положение — python-docx. Если вы еще не ознакомились с их документацией, то очень советую это сделать. Вполне возможно, что это один из самых интуитивно понятных и не требующих пояснений API, с которыми я работал в последнее время. Он позволяет автоматизировать создание документов путем вставки текста, заполнения таблиц и отображения изображений в отчете по требованию. Без лишних слов, давайте продолжим и создадим собственный автоматический отчет!
Создание шаблона
Прежде чем вы сможете продолжить, вы должны сначала создать свой собственный шаблон документа, который в основном представляет собой обычный документ Microsoft Word (.docx), сформулированный именно так, как вы хотите, чтобы ваш автоматический отчет был вплоть до каждой мельчайшей детали, такой как шрифты, шрифт размеры, форматирование и структура страницы. Единственное, что вам нужно сделать после этого, — это создать заполнители для вашего автоматизированного контента и объявить их с именами переменных, как показано ниже.
Как вы, наверное, уже догадались, любой автоматизированный контент может быть объявлен внутри набора двойных фигурных скобок {{имя_переменной}}. Это включает в себя текст и изображения. С таблицами немного сложнее. Вам нужно создать таблицу со строкой шаблона со всеми включенными столбцами, а затем вам нужно добавить одну строку выше и одну строку ниже со следующими обозначениями:
Первая строка:
{%tr for item in variable_name %}
Последняя строка:
{%tr endfor %}
Обратите внимание, что на рисунке выше имена переменных
- table_contents для словаря Python, в котором будут храниться наши табличные данные.
- Указатель для ключей словаря (первый столбец)
- Значение для значений словаря (второй столбец)
После этого сохраните документ в своем каталоге в виде файла .docx и приступайте к написанию кода для вызова шаблона и создания автоматизированного документа.
Исходный код
Теперь, когда вы создали свой шаблон, запустите Anaconda или любую другую Python IDE по вашему выбору и установите следующие пакеты:
pip install docx pip install docxtpl
Затем запустите новый скрипт и импортируйте все необходимые пакеты:
Затем импортируйте созданный шаблон и создайте экземпляры переменных:
Наконец, объявите свои переменные в словаре и используйте его для визуализации вашего автоматизированного документа Word:
Полученные результаты
И вот он, ваш автоматически сгенерированный отчет в кратчайшие сроки! И если вам интересно, да, вы можете создать столько строк и столбцов, сколько хотите в своей таблице, а также можете отображать столько страниц, сколько необходимо в вашем документе.
Если вы хотите узнать больше о визуализации данных и Python, не стесняйтесь проверить следующие курсы (связанные с аффилированными лицами):
Разработка веб-приложений с помощью Streamlit:
Визуализация данных с помощью Python:
Визуализация данных с помощью Python
«Картинка стоит тысячи слов. Всем нам знакомо это выражение. Особенно это касается попыток…www.coursera.org»
Специализация Python для всех:
Репозиторий GitHub:
☕ Понравился этот урок? Не стесняйтесь пожертвовать мне кофе здесь.
Новичок в Medium? Вы можете подписаться и разблокировать неограниченное количество статей здесь.
Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.