Библиотека
Docxtpl
используется для генерации и модификации документов в формате .docx на основе шаблонов.Она построена поверх библиотеки
python-docx
и предоставляет удобные инструменты для создания документов с динамическим содержимым, заменяя переменные внутри шаблонов на реальные данные.Основные возможности библиотеки:
pip install docxtpl
Пример кода:
from docxtpl import DocxTemplate
# Загрузка шаблона
doc = DocxTemplate("pattern.docx")
# Данные для замены
context = {
'name': 'Иван Иванович',
'date': '12.06.2024',
'items': [
{'name': 'Товар 1', 'price': '100 руб.'},
{'name': 'Товар 2', 'price': '200 руб.'},
]
}
# Рендеринг документа с данными
doc.render(context)
# Сохранение документа
doc.save("document.docx")
На картинках показан .docx-шаблон и результат выполнения кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4❤🔥2
В данном shorts напишем код для генерации фейковых данных о человеке на Python (не Faker).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍3🔥2
Справочник Программиста
Примеров кода довольно много, поэтому придётся разделить на несколько постов.
pip install mimesis
Генерация случайных персональных данных
from mimesis import Person
from mimesis.enums import Gender
from mimesis.locales import Locale
person = Person(Locale.RU)
print("Имя:", person.name())
print("Фамилия:", person.surname())
print("Пол:", person.gender())
print("Дата рождения:", person.birthdate())
print("Почта:", person.email())
print("Телефон:", person.telephone())
# Генерация данных с указанием пола
print("Мужское имя:", person.name(gender=Gender.MALE))
Генерация случайного адреса
from mimesis import Address
address = Address(locale="ru")
# Генерация случайных данных
print("Страна:", address.country())
print("Город:", address.city())
print("Улица:", address.street_name())
print("Дом:", address.street_number())
print("Почтовый индекс:", address.postal_code())
Генерация случайного текста
from mimesis import Text
text = Text(locale="ru")
print("Случайное слово:", text.word())
print("Случайное предложение:", text.sentence())
print("Случайный абзац:", text.text(quantity=1))
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍4❤🔥3
Библиотека
Tesserocr
предоставляет интерфейс для работы с библиотекой OCR (распознавание текста) Tesseract
.Она позволяет легко интегрировать возможности
Tesseract
в Python-приложения, предоставляя удобный интерфейс для работы с изображениями и распознавания текста.Основные возможности библиотеки:
Tesseract
.PIL
(Python Imaging Library) или напрямую с numpy
массивами, что позволяет легко подготавливать изображения для распознавания.Tesseract
: Позволяет настраивать различные параметры Tesseract
, такие как язык распознавания, варианты предобработки изображений и другие параметры конфигурации.pip install tesserocr
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3🔥3
Справочник Программиста
pip install mimesis
Генерация случайных платёжных данных
from mimesis import Payment
payment = Payment()
print("Номер кредитной карты:", payment.credit_card_number())
print("Дата окончания срока действия кредитной карты:", payment.credit_card_expiration_date())
print("CVV:", payment.cvv())
print("Сеть кредитной карты:", payment.credit_card_network())
print("Адрес Ethereum:", payment.ethereum_address())
print("PayPal:", payment.paypal())
print("Адрес Bitcoin:", payment.bitcoin_address())
print("Владелец кредитной карты:", payment.credit_card_owner())
print("CID:", payment.cid())
Генерация случайных временных данных
from mimesis import Datetime
datetime = Datetime()
print("Случайная дата:", datetime.date())
print("Случайное время:", datetime.time())
print("Случайный месяц:", datetime.month())
print("Случайный год:", datetime.year())
print("Случайный день недели:", datetime.day_of_week())
Генерация случайных данных по разработке
from mimesis import Development
development = Development()
print("Стадия разработки:", development.stage())
print("Характеристика надёжности ПО (ility):", development.ility())
print("Лицензия ПО:", development.software_license())
print("Версия с использованием календарной версии (calver):", development.calver())
print("Версия ПО:", development.version())
print("Язык программирования:", development.programming_language())
Генерация случайных общих данных
from mimesis import Generic
generic = Generic()
print("Случайное имя:", generic.person.name())
print("Случайный адрес:", generic.address.address())
print("Случайный текст:", generic.text.text())
print("Случайный файл:", generic.file.file_name())
print("Случайная дата:", generic.datetime.date())
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤🔥3🔥3😁1
Библиотека Dramatiq в Python
Библиотека
Она позволяет выполнять долгие и ресурсоемкие операции в фоновом режиме, освобождая основной поток выполнения для более важных задач.
Основные особенности библиотеки:
🔵 Асинхронность: Поддерживает асинхронное выполнение задач, что позволяет обрабатывать множество задач параллельно.
🔵 Простота использования: Имеет интуитивно понятный API, что делает ее доступной для разработчиков любого уровня.
🔵 Поддержка брокеров сообщений: Поддерживает несколько брокеров сообщений, включая
🔵 Расширяемость: Благодаря своей модульной архитектуре,
➡️ Установка библиотеки:
📱 Репозиторий
⚙️ Документация
➡️ Справочник Программиста. Подписаться
Библиотека
Dramatiq
- это асинхронная система очередей задач (task queue) для разработки и управления фоновыми задачами в приложениях.Она позволяет выполнять долгие и ресурсоемкие операции в фоновом режиме, освобождая основной поток выполнения для более важных задач.
Основные особенности библиотеки:
RabbitMQ
и Redis
, для обмена сообщениями между компонентами системы.Dramatiq
легко расширяется с помощью плагинов и middleware.pip install dramatiq
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Код для мониторинга скорости сетевого трафика в реальном времени на Python
Для мониторинга скорости сетевого трафика в коде используется модуль
Функция
➡️ Установка модуля:
➡️ Справочник Программиста. Подписаться
Для мониторинга скорости сетевого трафика в коде используется модуль
psutil
.Функция
net_io_counters()
из модуля psutil
предоставляет информацию о сетевом вводе/выводе (I/O) в системе.pip install
psutil
import psutil
import time
# Функция для мониторинга скорости сетевого трафика
def get_net_io():
# Получаем статистику сетевого ввода-вывода
io = psutil.net_io_counters()
# Возвращаем количество отправленных и полученных байт
return io.bytes_sent, io.bytes_recv
# Получаем начальные значения отправленных и полученных байт
prev_sent, prev_recv = get_net_io()
try:
# Бесконечный цикл для постоянного мониторинга
while True:
# Задержка на 1 секунду
time.sleep(1)
# Получаем текущие значения отправленных и полученных байт
sent, recv = get_net_io()
# Вычисляем и выводим скорость передачи и приема данных в KB/s
print(f"Скорость передачи: {(sent - prev_sent) / 1024:.2f} KB/s, Скорость приема: {(recv - prev_recv) / 1024:.2f} KB/s")
# Обновляем значения отправленных и полученных байт для следующего цикла
prev_sent, prev_recv = sent, recv
except KeyboardInterrupt:
# Обрабатываем прерывание программы (Ctrl+C)
print("Остановка мониторинга.")
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека
Altair
предназначена для визуализации данных на Python.Она основана на декларативном подходе, что делает создание графиков и диаграмм интуитивно понятным и удобным.
Основные особенности библиотеки:
DataFrame
из Pandas
, что позволяет быстро создавать графики на основе табличных данных.Matplotlib
или Seaborn
.pip install altair
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤🔥3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Код для изменения размеров окна на Python
Для изменения размеров окна в коде используется библиотека
Функция
➡️ Установка модуля:
➡️ Справочник Программиста. Подписаться
Для изменения размеров окна в коде используется библиотека
PyGetWindow
.Функция
getWindowsWithTitle()
позволяет получить окно, а метод resizeTo()
- изменить его ширину и высоту.pip install PyGetWindow
import pygetwindow as gw
# Получаем окно, размеры которого нужно изменить
window = gw.getWindowsWithTitle('Название окна')[0]
# Изменяем размер окна на заданную ширину и высоту
window.resizeTo(800, 600)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥3🔥3
Библиотека
paramiko
предназначена для работы с SSH-2.Она позволяет создавать скрипты для автоматизации задач, которые требуют удаленного доступа к серверам, передачи файлов и выполнения команд.
Основные возможности библиотеки:
paramiko
для подключения к удаленному серверу, выполнения команды и получения результатаimport paramiko
# Создание SSH клиента
client = paramiko.SSHClient()
# Автоматическое добавление неизвестных ключей сервера
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# Подключение к серверу
client.connect('hostname', username='user', password='passwd')
# Выполнение команды
stdin, stdout, stderr = client.exec_command('ls -l')
# Получение и вывод результата команды
print(stdout.read().decode())
# Закрытие соединения
client.close()
pip install paramiko
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека
ujson
предназначена для кодирования и декодирования JSON.Она значительно быстрее стандартной библиотеки
json
в Python, т.к. написана на языке C (в прикреплённом видео сравнивается их скорость).import ujson as json
# Кодирование JSON
data = {"name": "Anna", "age": 25, "city": "Novosibirsk"}
json_str = json.dumps(data)
print(json_str) # Вывод: {"name":"Anna","age":25,"city":"Novosibirsk"}
# Декодирование JSON
json_str = '{"name":"Anna","age":25,"city":"Novosibirsk"}'
data = json.loads(json_str)
print(data) # Вывод: {'name': 'Anna', 'age': 25, 'city': 'Novosibirsk'}
pip install ujson
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6👍4🔥4
Справочник Программиста
Вижу вам очень понравилась эта тема, поэтому держите последнюю порцию кода по ней
pip install mimesis
Генерация фейковых интернет-данных
from mimesis import Internet
internet = Internet()
print(f'Тип контента: {internet.content_type()}')
print(f'HTTP-метод: {internet.http_method()}')
print(f'IPv4 адрес: {internet.ip_v4()}')
print(f'IPv4 адрес с портом: {internet.ip_v4_with_port()}')
print(f'IPv6 адрес: {internet.ip_v6()}')
print(f'MAC адрес: {internet.mac_address()}')
print(f'Slug: {internet.slug()}')
print(f'Домен верхнего уровня: {internet.top_level_domain()}')
print(f'URL: {internet.url()}')
print(f'User-Agent: {internet.user_agent()}')
print(f'Строка запроса: {internet.query_string()}')
Генерация фейковых числовых данных
from mimesis import Numeric
numeric = Numeric()
print(f'Целое число: {numeric.integer_number()}')
print(f'Список целых чисел: {numeric.integers(start=1, end=100, n=5)}')
print(f'Число с плавающей точкой: {numeric.float_number()}')
print(f'Список чисел с плавающей точкой: {numeric.floats(start=0.1, end=10.0, n=5)}')
print(f'Комплексное число: {numeric.complex_number()}')
print(f'Список комплексных чисел: {numeric.complexes(start_real=0, end_real=1, start_imag=0, end_imag=1)}')
print(f'Число с плавающей точкой в диапазоне: {numeric.float_number(start=0.1, end=10.0)}')
print(f'Десятичное число: {numeric.decimal_number(start=0.1, end=10.0)}')
print(f'Список десятичных чисел: {numeric.decimals(start=0.1, end=10.0, n=5)}')
print(f'Матрица: {numeric.matrix(m=5, n=5)}')
Генерация фейковых транспортных данных
from mimesis import Transport
transport = Transport()
print(f'Номер автомобиля: {transport.car()}')
print(f'Марка автомобиля: {transport.manufacturer()}')
print(f'Регистрационный знак: {transport.vehicle_registration_code()}')
print(f'Модель самолёта: {transport.airplane()}')
Генерация фейковых путей и директорий
from mimesis import Path
path = Path()
print(f'Каталог: {path.root()}')
print(f'Домашний каталог: {path.home()}')
print(f'Каталог пользователя: {path.user()}')
print(f'Каталог пользователей: {path.users_folder()}')
print(f'Каталог разработки: {path.dev_dir()}')
print(f'Каталог проекта: {path.project_dir()}')
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5❤🔥2
Логирование в Python
В данной статье узнаем что такое логирование и как с ним работать в Python.
➡️ Справочник Программиста. Подписаться
В данной статье узнаем что такое логирование и как с ним работать в Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤🔥2👍2🤨1
В данном shorts напишем код для анонимизации данных на Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤🔥3😁1
Справочник Программиста
Библиотека scrubadub в Python
Библиотека
Основные возможности библиотеки:
🔵 Поиск личных данных: Поддержка различных детекторов, которые могут обнаруживать имена, адреса, номера телефонов, электронные почты и т.д.
🔵 Замена личных данных: После обнаружения личных данных
🔵 Расширяемость: Можно добавлять собственные детекторы или использовать существующие, чтобы обрабатывать специфические виды данных.
🔵 Поддержка разных языков: Может работать с текстами на разных языках.
✅ Пример кода
➡️ Установка библиотеки:
📱 Репозиторий
➡️ Справочник Программиста. Подписаться
Библиотека
scrubadub
предназначена для анонимизации текста, позволяет автоматически находить и удалять личные данные, такие как имена, адреса, номера телефонов и другие идентифицирующие сведения.Основные возможности библиотеки:
scrubadub
может заменять их на нейтральные плейсхолдеры, например, {{NAME}}, {{EMAIL}}.import scrubadub
# Пример текста с личными данными
text = "Вот моя почта - iavn@example.com и мой номер телефона - +7 (999) 999-99-99"
# Анонимизация текста
cleaned_text = scrubadub.clean(text)
print(cleaned_text)
pip install scrubadub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤🔥3🔥2
Справочник Программиста
This media is not supported in your browser
VIEW IN TELEGRAM
Код для генерации советов на Python
Нашёл ещё один интересный API, благодаря которому можно генерировать советы, если их так можно назвать🤔
Для обращения к API в коде используется библиотека
➡️ Установка библиотек:
➡️ Справочник Программиста. Подписаться
Нашёл ещё один интересный API, благодаря которому можно генерировать советы, если их так можно назвать
Для обращения к API в коде используется библиотека
requests
, а для перевода на русский - googletrans
.pip install
requests googletrans==3.1.0a0
import requests
from googletrans import Translator
def fetch_advice():
translator = Translator()
try:
response = requests.get("https://api.adviceslip.com/advice")
response.raise_for_status() # Проверка на успешный статус ответа
advice_data = response.json()
advice_text = advice_data["slip"]["advice"]
# Переводим текст совета на русский язык
translated_advice = translator.translate(advice_text, dest='ru')
# Выводим переведенный текст совета
print("\nСовет:", translated_advice.text)
except requests.exceptions.RequestException as e:
# Обработка исключений при выполнении запроса
print("\nОшибка: Не удалось получить совет. Пожалуйста, проверьте ваше интернет-соединение.")
print("Детали ошибки:", e)
except KeyError as e:
# Обработка исключений при доступе к данным JSON
print("\nОшибка: Неправильный формат ответа API.")
print("Детали ошибки:", e)
except Exception as e:
# Обработка других исключений
print("\nПроизошла непредвиденная ошибка.")
print("Детали ошибки:", e)
def main():
while True:
user_input = input("\nНажмите 'Enter' для получения совета или введите 'exit' для выхода: ").strip().lower()
if user_input == "exit":
print("Выход из программы. До свидания!")
break
fetch_advice()
if __name__ == "__main__":
main()
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍4❤🔥2😁1
Полезные ссылки
За последние дни на канал подписалось много новых людей, поэтому я решил в одном посте выложить ссылки на все свои проекты, чтобы не было путаницы.
📱 YouTube-канал
📱 Сайт со статьями по Python
📱 Мой основной телеграм-канал (этот) - @programmersGuide_1
📱 Мой телеграм-канал с викторинами по Python (рано или поздно возрожу)) - @python_quizzes_tasks
📱 Приобрести мои курсы можно у бота (до конца июня скидки на всё 50%) - @courses_from_it_start_bot
📱 По написанию кода на заказ и сотрудничеству - @it_start_programmer
📱 Дзен
📱 TikTok
📱 Boosty (когда-нибудь возрожу)
💰 Поддержать меня
За последние дни на канал подписалось много новых людей, поэтому я решил в одном посте выложить ссылки на все свои проекты, чтобы не было путаницы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥4
Библиотека SDV в Python
Библиотека
Она была разработана для облегчения создания данных, которые сохраняют статистические свойства оригинальных данных, но не содержат реальных, возможно, конфиденциальных сведений.
Основные особенности библиотеки:
🔵 Синтетические данные: Позволяет генерировать синтетические наборы данных, которые имеют такие же статистические свойства, как и исходные данные.
🔵 Модели данных: Поддерживает несколько моделей для создания синтетических данных, включая GAN (Generative Adversarial Networks), Bayesian Networks и другие методы.
🔵 Обработка различных типов данных: Может работать с различными типами данных, такими как числовые, категориальные, временные ряды и т.д.
🔵 Конфиденциальность данных: Поскольку синтетические данные не содержат реальных данных, они могут использоваться в ситуациях, где важно сохранить конфиденциальность информации.
🔵 Генерация данных для сложных структур: Позволяет создавать синтетические данные для сложных структур, таких как базы данных с несколькими связанными таблицами.
✅ Пример кода. Т.к. пример на скриншоте слишком большой, продублирую его без комментариев в виде кода. Не переписывать же с картинки 🤔
➡️ Установка библиотеки:
📱 Репозиторий
⚙️ Документация
➡️ Справочник Программиста. Подписаться
Библиотека
SDV
(Synthetic Data Vault) предназначена для генерации синтетических данных.Она была разработана для облегчения создания данных, которые сохраняют статистические свойства оригинальных данных, но не содержат реальных, возможно, конфиденциальных сведений.
Основные особенности библиотеки:
from sdv.datasets.demo import download_demo
from sdv.evaluation.single_table import run_diagnostic
from sdv.single_table import GaussianCopulaSynthesizer
from sdv.evaluation.single_table import evaluate_quality
from sdv.evaluation.single_table import get_column_plot
real_data, metadata = download_demo(
modality='single_table',
dataset_name='fake_hotel_guests'
)
synthesizer = GaussianCopulaSynthesizer(metadata)
synthesizer.fit(real_data)
synthetic_data = synthesizer.sample(num_rows=500)
synthetic_data.head()
diagnostic = run_diagnostic(
real_data=real_data,
synthetic_data=synthetic_data,
metadata=metadata
)
quality_report = evaluate_quality(
real_data,
synthetic_data,
metadata
)
quality_report.get_details('Column Shapes')
fig = get_column_plot(
real_data=real_data,
synthetic_data=synthetic_data,
column_name='room_rate',
metadata=metadata
)
fig.show()
pip install sdv
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤🔥4🔥3😁2
Передача файлов с использованием SFTP на Python
Для передачи файлов с использованием SFTP в коде используется библиотека paramiko.
➡️ Установка модуля:
➡️ Справочник Программиста. Подписаться
Для передачи файлов с использованием SFTP в коде используется библиотека paramiko.
pip install paramiko
import paramiko
# Создание SSH клиента
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# Подключение к серверу
client.connect('hostname', username='user', password='passwd')
# Создание SFTP сессии
sftp = client.open_sftp()
# Загрузка файла на сервер
sftp.put('local_file.txt', 'remote_file.txt')
# Скачивание файла с сервера
sftp.get('remote_file.txt', 'local_file.txt')
# Закрытие SFTP сессии и SSH соединения
sftp.close()
client.close()
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4❤🔥2