Справочник Программиста
6.36K subscribers
1.3K photos
376 videos
64 files
1.63K links
По рекламе - @it_start_programmer
Мои курсы - @courses_from_it_start_bot
Сайт - https://it-start.online/
YouTube - https://www.youtube.com/@it_start
Реклама на бирже - https://telega.in/c/programmersGuide_1

Предложить идею: @it_start_suggestion_bot
Download Telegram
Справочник Программиста
📺 Анонимизация личных данных в Python В данном shorts напишем код для анонимизации данных на Python. ➡️Справочник Программиста. Подписаться
Библиотека 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
Справочник Программиста
🍽Код для генерации идей ужина на Python Нашёл данный код на просторах интернета, почти весь пришлось переписать и добавить перевод (хотя мне кажется лучше его убрать и читать по-английски))) Для обращения к API в коде используется библиотека requests, а…
This media is not supported in your browser
VIEW IN TELEGRAM
Код для генерации советов на Python

Нашёл ещё один интересный 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

Библиотека SDV (Synthetic Data Vault) предназначена для генерации синтетических данных.

Она была разработана для облегчения создания данных, которые сохраняют статистические свойства оригинальных данных, но не содержат реальных, возможно, конфиденциальных сведений.

Основные особенности библиотеки:
🔵Синтетические данные: Позволяет генерировать синтетические наборы данных, которые имеют такие же статистические свойства, как и исходные данные.
🔵Модели данных: Поддерживает несколько моделей для создания синтетических данных, включая GAN (Generative Adversarial Networks), Bayesian Networks и другие методы.
🔵Обработка различных типов данных: Может работать с различными типами данных, такими как числовые, категориальные, временные ряды и т.д.
🔵Конфиденциальность данных: Поскольку синтетические данные не содержат реальных данных, они могут использоваться в ситуациях, где важно сохранить конфиденциальность информации.
🔵Генерация данных для сложных структур: Позволяет создавать синтетические данные для сложных структур, таких как базы данных с несколькими связанными таблицами.

Пример кода. Т.к. пример на скриншоте слишком большой, продублирую его без комментариев в виде кода. Не переписывать же с картинки 🤔
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.

➡️Установка модуля: 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
🗄Библиотека ArchiveBox в Python

Библиотека ArchiveBox позволяет архивировать и сохранять веб-страницы.

Она предназначена для автоматического захвата, архивирования и индексации онлайн-контента, чтобы пользователи могли создавать долговечные копии веб-страниц для будущего использования.

Основные возможности библиотеки:
🔵Захват веб-страниц: Может захватывать и сохранять веб-страницы различными способами, включая HTML, PDF, снимки экрана, WARC (Web ARChive), и другие форматы.
🔵Поддержка нескольких источников: Поддерживает импорт ссылок из множества источников, таких как браузерные закладки, файлы HTML, RSS-ленты, и API.
🔵Интеграция с другими инструментами: Может работать вместе с другими инструментами архивирования, такими как wget, curl, youtube-dl и другими, чтобы захватывать контент с различных типов сайтов, включая видео и динамический контент.
🔵Поиск и индексация: Сохранённые веб-страницы индексируются, что позволяет выполнять поиск по содержимому архивированных сайтов.
🔵Автоматизация: Можно настроить автоматическое обновление архива с регулярными интервалами, чтобы сохранять актуальные версии страниц.

➡️Установка библиотеки: pip install archivebox

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3❤‍🔥2
Дизассемблирование в Python

В данной статье поговорим про дизассемблирование байт-кода в Python.

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Код для извлечения кадров из GIF на Python

Для извлечения кадров из GIF в коде используется библиотека Pillow.

Атрибут n_frames из библиотеки Pillow представляет собой количество кадров в анимированном изображении.

➡️Установка библиотеки: pip install Pillow

from PIL import Image

# Открытие GIF
gif = Image.open('input.gif')

# Извлечение и сохранение кадров
for frame in range(0, gif.n_frames):
gif.seek(frame)
gif.save(f'frame_{frame}.png')


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5👍4🔥2
Библиотека IconMatch в Python

Библиотека IconMatch предназначена для классификации и распознавания изображений и иконок.

Она помогает программам и разработчикам находить наиболее похожие изображения или иконки из заданного набора, основываясь на визуальных характеристиках.

Основные возможности библиотеки:
🔵Позволяет анализировать изображения, извлекая ключевые характеристики, что помогает в сравнении и поиске схожих изображений.
🔵Использует различные алгоритмы и методики, такие как гистограммы, дескрипторы или сравнение контуров, чтобы оценить степень сходства между изображениями.
🔵Для повышения точности распознавания и классификации библиотека включает инструменты для предобработки изображений, такие как изменение размера, нормализация и фильтрация.
🔵Оснащена удобным интерфейсом, что облегчает ее интеграцию в проекты и приложений, требующие функционала распознавания и

➡️Установка библиотеки: pip install IconMatch

📱 Репозиторий

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤‍🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
⛅️ Код для получения прогноза погоды на Python

Для обращения к API в коде используется библиотека requests.

➡️Установка библиотеки: pip install requests

import requests


def get_weather(city: str) -> None:
api_key = '79d1ca96933b0328e1c7e3e7a26cb347'
base_url = 'https://api.openweathermap.org/data/2.5/weather'
params = {
'q': city, # Название города
'units': 'metric', # Единицы измерения - метрические
'lang': 'ru', # Язык ответа
'appid': api_key # Ключ API
}

try:
# Выполняем GET-запрос с параметрами
response = requests.get(base_url, params=params)
# Проверяем успешность выполнения запроса
response.raise_for_status()
# Преобразуем ответ в формат JSON
weather_data = response.json()

# Получаем текущую температуру
temperature = weather_data['main']['temp']
# Получаем ощущаемую температуру
temperature_feels = weather_data['main']['feels_like']
# Получаем скорость ветра
wind_speed = weather_data['wind']['speed']
# Получаем описание облачности
cloud_cover = weather_data['weather'][0]['description']
# Получаем влажность
humidity = weather_data['main']['humidity']

# Выводим собранные данные о погоде
print(f'Температура воздуха: {temperature}°C\n'
f'Ощущается как: {temperature_feels}°C\n'
f'Ветер: {wind_speed} м/с\n'
f'Облачность: {cloud_cover}\n'
f'Влажность: {humidity}%')
# Обрабатываем исключения, связанные с запросом
except requests.RequestException as e:
print(f'Ошибка при запросе погоды: {e}')
# Обрабатываем случаи отсутствия данных в ответе
except KeyError:
print(f'Не удалось определить город: {city}')


if __name__ == "__main__":
city = input('Введите город, в котором хотите узнать погоду: ')
get_weather(city)


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍7❤‍🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека Mako в Python

Библиотека Mako предназначена для создания шаблонов. Она используется для генерации HTML, XML или любых других текстовых форматов, основываясь на данных, переданных в шаблон.

Часто применяется в веб-разработке для создания динамических веб-страниц.

Основные особенности библиотеки:
🔵Синтаксис, основанный на Python: Использует синтаксис, который похож на Python, что делает его удобным для разработчиков, уже знакомых с языком.
🔵Высокая производительность: Оптимизирован для высокой производительности, обеспечивая быструю генерацию шаблонов.
🔵Гибкость: Позволяет легко вставлять любые данные в шаблоны и поддерживает богатый набор встроенных функций и фильтров.
🔵Безопасность: Предоставляет механизмы для экранирования HTML, предотвращая атаки типа XSS (Cross-Site Scripting).
🔵Расширяемость: Легко интегрируется с другими библиотеками и фреймворками, такими как Flask, Pyramid и др.

➡️Установка библиотеки: pip install Mako

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍4❤‍🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Код для получения информации о процессоре на Python

Для получения информации о процессоре в коде используется модуль psutil.

Функция cpu_count() из модуля psutil используется для получения количества логических или физических процессоров в системе, а функция cpu_percent() используется для измерения загрузки CPU в процентах.

➡️Установка модуля: pip install psutil

import psutil

print(f"Число ядер: {psutil.cpu_count(logical=True)}")
print(f"Загруженность процессора: {psutil.cpu_percent(interval=1)}%")
print(f"Загрузка по ядрам: {psutil.cpu_percent(interval=1, percpu=True)}%")


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤‍🔥6🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека Black в Python

Библиотека Black позволяет автоматически форматировать код на Python.

Основные особенности библиотеки:
🔵Автоматическое форматирование: Автоматически преобразует код в соответствии с заданными стандартами форматирования, не требуя вмешательства программиста.
🔵Однозначность стиля: Благодаря строгим правилам форматирования, код, отформатированный с помощью Black, имеет единый стиль в пределах проекта.
🔵Непрерывная поддержка стандартов: Следует рекомендациям PEP 8.
🔵Конфигурационные возможности: Возможность настроить некоторые аспекты поведения Black, такие как длина строки, использование одинарных или двойных кавычек и т.д., через специальный конфигурационный файл pyproject.toml.
🔵Интеграция с инструментами CI/CD: Легко интегрируется в процессы CI/CD, что позволяет автоматически проверять и форматировать код при каждом коммите или перед релизом.

➡️Установка библиотеки: pip install black

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤‍🔥4👍3😁1
This media is not supported in your browser
VIEW IN TELEGRAM
🐈 Код для получения случайных изображений кошек на Python

Продолжая тему интересных API, нашёл The Cat API, который позволяет получать случайные изображения кошек. Надеюсь это кому-нибудь будет полезно.

Для обращения к API в коде используется библиотека requests, а для работы с изображениями - io и Pillow.

➡️Установка библиотек: pip install requests pillow

import requests
from PIL import Image
from io import BytesIO

API = 'https://api.thecatapi.com/v1'


def get_random_cat_image():
# Выполняем GET-запрос к API
response = requests.get(f'{API}/images/search')

if response.status_code == 200: # Проверяем, успешен ли запрос
# Преобразуем ответ в формате JSON в словарь
data = response.json()
# Извлекаем URL изображения из данных
image_url = data[0]['url']
# Возвращаем URL изображения
return image_url
else: # Если запрос не успешен
# Выбрасываем исключение с сообщением об ошибке
raise Exception(f'Ошибка при получении данных от The Cat API: {response.status_code}')


def display_image(image_url):
# Выполняем GET-запрос для получения изображения
response = requests.get(image_url)

# Проверяем, успешен ли запрос
if response.status_code == 200:
# Извлекаем содержимое ответа (данные изображения)
img_data = response.content
# Открываем изображение из байтового потока
img = Image.open(BytesIO(img_data))
# Показываем изображение
img.show()
else: # Если запрос не успешен
# Выбрасываем исключение с сообщением об ошибке
raise Exception(f'Ошибка при получении изображения с {image_url}: {response.status_code}')


def main():
# Получаем URL случайного изображения кота
image_url = get_random_cat_image()
# Печатаем URL изображения
print(f'URL изображения кота: {image_url}')
# Отображаем изображение
display_image(image_url)


if __name__ == '__main__':
main()


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥11👍3🔥3😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека isort в Python

Библиотека isort предназначена для автоматической сортировки импортов в файлах Python.

Она помогает поддерживать порядок импортов в соответствии с определенным стилем или стандартом кодирования, что улучшает читаемость кода и его поддерживаемость.

Основные особенности библиотеки:
🔵Автоматическая сортировка: Сканирует файлы Python и автоматически сортирует импорты в соответствии с заданными правилами или стилем.
🔵Поддержка различных стилей: Поддерживает несколько стилей сортировки импортов, таких как стандартные стили PEP 8, Google, и другие.
🔵Интеграция с редакторами и средами разработки: Интегрируется с популярными редакторами кода и средами разработки, такими как VS Code, PyCharm, Sublime Text и другими, что позволяет использовать автоматическую сортировку импортов без необходимости выполнять её вручную.
🔵Конфигурируемость: Может быть настроена, указав различные параметры через конфигурационные файлы или аргументы командной строки.
🔵Командная строка и API: Может быть использован как из командной строки для обработки файлов и директорий, так и как Python API для интеграции с другими инструментами и скриптами.

➡️Установка библиотеки: pip install isort

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6👍5🔥1
📺 Прячем архив в изображении при помощи Python

В данном shorts напишем код для записи архива в изображение на Python.

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3❤‍🔥2
Код для записи архива в изображение при помощи Python

# Открываем файл 'image.jpg' в режиме добавления в бинарном формате (ab)
with open('image.jpg', 'ab') as f:
# Открываем файл 'important archive.zip' в режиме чтения в бинарном формате (rb)
with open('important archive.zip', 'rb') as s:
# Считываем всё содержимое файла архива
data = s.read()

# Записываем прочитанное содержимое в конец файла 'image.jpg'
f.write(data)


Код для извлечения архива из изображения при помощи Python
# Открываем файл 'image.jpg' в режиме чтения бинарных данных
with open('image.jpg', 'rb') as f:
# Считываем всё содержимое файла в переменную content
content = f.read()

# Ищем индекс начала последовательности байтов, соответствующих маркеру конца JPEG-файла (FFD9)
offset = content.index(bytes.fromhex('FFD9'))

# Устанавливаем указатель позиции чтения файла на два байта после найденного маркера FFD9
f.seek(offset + 2)

# Открываем новый файл 'newfile.zip' в режиме записи бинарных данных
with open('newfile.zip', 'wb') as s:
# Записываем в новый файл все оставшиеся байты после позиции указателя чтения
s.write(f.read())


📺 Подробное объяснение

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤‍🔥3😁2
This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека context-menu в Python

Библиотека context-menu предназначена для создания и управления контекстными меню в приложениях.

Контекстное меню – это меню, которое появляется при взаимодействии пользователя с элементом интерфейса, обычно при нажатии правой кнопкой мыши.

Основные возможности библиотеки:
🔵Создание контекстных меню: Позволяет добавлять пункты в контекстные меню для файлов, папок и рабочих столов.
🔵Ассоциация команд: Позволяет связать команды или скрипты Python с выбранными пунктами меню.
🔵Настройка параметров: Позволяет задавать параметры для пунктов меню, такие как имя, команда, которая будет выполнена при выборе пункта, и другие.

➡️Установка библиотеки: pip install context_menu

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤‍🔥3👍3