Справочник Программиста
6.28K subscribers
1.36K photos
387 videos
64 files
1.71K 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
Передача файлов с использованием 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
This media is not supported in your browser
VIEW IN TELEGRAM
Код для генерации анекдотов на Python

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

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

import requests
from googletrans import Translator


def get_random_joke():
# Создаем экземпляр класса Translator
translator = Translator()

# URL для получения случайной шутки
url = "https://v2.jokeapi.dev/joke/Any"

# Отправляем GET-запрос к API
response = requests.get(url)

# Проверяем, успешно ли выполнен запрос
if response.status_code == 200:
# Если запрос успешен, преобразуем ответ в формат JSON
joke_data = response.json()

# Проверяем тип шутки: если шутка однострочная
if joke_data["type"] == "single":
# Переводим шутку на русский язык
joke = translator.translate(joke_data["joke"], dest='ru')
# Выводим переведенную шутку
print(joke.text)

# Если шутка двухчастная
elif joke_data["type"] == "twopart":
# Переводим начало шутки на русский язык
setup = translator.translate(joke_data["setup"], dest='ru')
# Переводим окончание шутки на русский язык
delivery = translator.translate(joke_data["delivery"], dest='ru')
# Выводим переведенное начало шутки
print(setup.text)
# Выводим переведенное окончание шутки
print(delivery.text)
else:
# Если запрос не удался, выводим сообщение об ошибке
print("Не удалось получить шутку, попробуйте позже.")


if __name__ == "__main__":
get_random_joke()


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

Модуль DeepFace предназначена для распознавания и анализа лиц.

Позволяет распознавать лица, определять возраст, пол, расу и эмоции.

Основные возможности библиотеки:
🔵Распознавание лиц: Сравнение и верификация лиц на изображениях.
🔵Детекция лиц: Обнаружение лиц на изображениях.
🔵Анализ атрибутов: Определение возраста, пола, расы и эмоций человека на изображении.
🔵Поддержка нескольких моделей: Включает в себя несколько популярных моделей для распознавания лиц, таких как VGG-Face, Google FaceNet, OpenFace, Facebook DeepFace и DeepID.
🔵Простота использования: Интуитивный интерфейс для быстрой интеграции и использования в проектах.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥5❤‍🔥3
📄 Код для создания таблицы в Excel на Python

Для работы с Excel в коде используется библиотека openpyxl.

Данный код можно расценивать как шаблон и дополнять столбцами, строками и т.д. Результат работы кода показан на скриншоте.

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

import openpyxl
from openpyxl.worksheet.table import Table, TableStyleInfo

# Создаём новую книгу Excel и активный лист
wb = openpyxl.Workbook()
ws = wb.active

# Данные для таблицы (пример)
data = [
["Имя", "Возраст", "Город"],
["Анна", 24, "Новосибирск"],
["Иван", 30, "Нижнекамск"],
["Пётр", 28, "Екатеринбург"]
]

# Заполняем активный лист данными
for row in data:
ws.append(row)

# Изменяем ширину столбцов
ws.column_dimensions['B'].width = 20
ws.column_dimensions['C'].width = 20

# Определяем диапазон для таблицы (включая заголовок)
table_range = "A1:C4"

# Создаём объект таблицы
tab = Table(displayName="Table1", ref=table_range)

# Определяем стиль таблицы
style = TableStyleInfo(name="TableStyleMedium9", showFirstColumn=False,
showLastColumn=False, showRowStripes=True, showColumnStripes=True)
tab.tableStyleInfo = style

# Добавляем таблицу на лист
ws.add_table(tab)

# Сохраняем книгу
wb.save('new_table.xlsx')


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