Автоматизация повторяющихся задач, на которые не стоит тратить время

Возможно, мы все можем вспомнить знаменательный момент в нашей карьере в области науки о данных, когда нам пришлось потратить большую часть дня на создание множества повторяющихся и утомительных отчетов, которые в противном случае могли бы быть созданы автоматически. Само собой разумеется, что ваше время гораздо ценнее, чем необходимость заниматься надоедливой работой по заполнению таблиц и написанию заголовков, подзаголовков и нумерации рисунков. Наслаждайтесь моментом, занимаясь чем-то чуть более целенаправленным, например, читая 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 и присоединитесь к нашему Коллективу талантов.