Справочник Программиста
6.29K 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
This media is not supported in your browser
VIEW IN TELEGRAM
Код для смены пароля PDF-файла на Python

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

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

import pikepdf

# Указываем путь к PDF-файлу и текущий пароль
pdf_path = "encrypted.pdf"
current_password = "старый_пароль"

# Указываем новый пароль
new_password = "новый_пароль"

# Открываем PDF-файл с помощью текущего пароля
with pikepdf.open(pdf_path, password=current_password) as pdf:
# Изменяем пароль на новый
pdf.save("new_encrypted.pdf",
encryption=pikepdf.Encryption(owner=new_password, user=new_password))


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

Библиотека attrs предназначена для определения классов без необходимости писать много повторяющегося кода.

Позволяет создавать классы с автоматически генерируемыми методами, такими как __init__, __repr__, __eq__, и другими.

Основные возможности attrs включают:
🔵Автоматическое создание метода __init__ для инициализации атрибутов класса.
🔵Автоматическое создание метода __repr__ для представления объекта в виде строки.
🔵Автоматическое создание метода __eq__ для сравнения объектов на равенство.
🔵Возможность добавления дополнительных атрибутов и методов к классу.
🔵Поддержка наследования и множественного наследования.
🔵Интеграция с другими библиотеками и фреймворками, такими как dataclasses и Flask.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥2
Код для извлечения метаданных из Word-документа на Python

Для работы с Word-документом в коде используется библиотека python-docx.

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

import docx


def extract_metadata(docx_file):
# Создаём объект класса Document и передаём путь к документу
doc = docx.Document(docx_file)
# Получаем основные свойства документа
core_properties = doc.core_properties

# Инициализируем пустой словарь для хранения метаданных
metadata = {}

# Извлекаем основные свойства
for prop in dir(core_properties):
if prop.startswith('__'):
continue
# Получаем значение свойства
value = getattr(core_properties, prop)
if callable(value):
continue
# Проверяем свойства с типом datetime
if prop == 'created' or prop == 'modified' or prop == 'last_printed':
if value:
value = value.strftime('%Y-%m-%d %H:%M:%S')
else:
value = None
# Сохраняем свойство и его значение в словаре метаданных
metadata[prop] = value

# Извлекаем пользовательские свойства (если они доступны)
try:
custom_properties = core_properties.custom_properties
if custom_properties:
metadata['custom_properties'] = {}
# Перебираем пользовательские свойства
for prop in custom_properties:
metadata['custom_properties'][prop.name] = prop.value
except AttributeError:
# Пропускаем извлечение пользовательских свойств, если атрибут недоступен
pass
return metadata


# Вызываем функцию extract_metadata()
metadata = extract_metadata('my_doc.docx')
print(metadata)

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍7❤‍🔥3
Media is too big
VIEW IN TELEGRAM
Библиотека Wren в Python

Wren - это простое приложение, которое позволяет управлять своими задачами и заметками.

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

➡️Простая установка библиотеки: pip install wren-notes
➡️Установка библиотеки с необязательными зависимостями: pip install "wren-notes[telegram,http]"

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤‍🔥3👍2🤔1
📺 Консольная "Домашняя бухгалтерия" на Python

В данном shorts напишем код консольной "Домашней бухгалтерии" на Python.

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

Библиотека PyJWT предназначена для работы с JSON Web Token (JWT).

JWT - это открытый стандарт (RFC 7519), который определяет компактный и самодостаточный формат для обмена информацией между сторонами в виде JSON-объектов.

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

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

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

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

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

Функция getWindowsWithTitle() позволяет получить окно, а метод moveTo() - переместить его.

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

import pygetwindow as gw

window = gw.getWindowsWithTitle('Название окна')[0]
window.moveTo(500, 500)


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3❤‍🔥2😎1
This media is not supported in your browser
VIEW IN TELEGRAM
Фреймворк botasaurus в Python

botasaurus - это универсальный фреймворк для веб-парсинга.

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

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

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

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

Для извлечения метаданных из PDF-файла в коде используется библиотека pikepdf.

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

import pikepdf

# Указываем путь к PDF-файлу
pdf_filename = "example1.pdf"

# Считываем PDF-файл
pdf = pikepdf.Pdf.open(pdf_filename)

# Извлекаем и выводим метаданные PDF-файла
doc_info = pdf.docinfo
for key, value in doc_info.items():
print(key, ":", value)


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥3
Поздравляю всех с наступлением лета!

В честь этого, я решил сделать скидку в размере 5️⃣0️⃣🔣 на все свои курсы аж до конца июня!

Приобрести курсы можно у бота - @courses_from_it_start_bot

Просто выбираете товар, перейдя по ссылке оплачиваете его, нажимаете на кнопку "Проверить платёж", и бот сгенерирует и скинет Вам ссылку на закрытый телеграм-канал с оплаченным курсом.

(Если Вы ранее пользовались ботом, отправьте ему команду /start, т.к. я его обновил)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥7❤‍🔥2😎1
This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека PyOpenGL в Python

Библиотека PyOpenGL позволяет использовать возможности OpenGL для создания графических приложений.

OpenGL (Open Graphics Library) — это стандартный интерфейс для рендеринга 2D и 3D графики, широко используемый в индустрии компьютерной графики.

Основные особенности библиотеки:
🔵Поддержка всех основных функций и возможностей OpenGL 4.x и старше, включая шейдеры, буферные объекты и текстуры.
🔵Интеграция с другими библиотеками Python, такими как Pygame и NumPy.
🔵Поддержка различных платформ, включая Windows, Linux и macOS.
🔵Возможность создания интерактивных трехмерных приложений и игр.

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

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

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

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

➡️Установка moviepy: pip install moviepy

from moviepy.editor import VideoFileClip


def gif_to_mp4(input_gif, output_mp4):
clip = VideoFileClip(input_gif)
clip.write_videofile(output_mp4)


gif_to_mp4("input.gif", "output.mp4")


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

Библиотека py-spy позволяет наблюдать за исполнением приложения и анализировать, какие функции занимают больше всего времени, чтобы можно было идентифицировать места, где производительность приложения может быть улучшена.

Особенности библиотеки:
🔵Поддержка различных форматов вывода: позволяет сохранять данные профилирования в различных форматах, таких как Flamegraph, JSON или просто текстовый вывод.
🔵Поддержка различных способов использования: может быть использована как из командной строки, так и в качестве библиотеки, что делает её гибким инструментом для интеграции в собственные процессы анализа и профилирования.
🔵Мультиплатформенность: работает на различных операционных системах, включая Linux, macOS и Windows.
🔵Низкая накладная издержка: поскольку Py-Spy работает в реальном времени, мы можем профилировать даже долгоживущие приложения без значительного влияния на их производительность.

Она поддерживает запись профилей в файл с помощью команды record . Например, мы можем сгенерировать flame graph процесса прописав в терминале:
py-spy top --pid 12345

Или
py-spy top -- python myprogram.py


В результате будет сгенерирован интерактивный SVG-файл, выглядящий как на изображении к данному посту.

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

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

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

Для разделения страниц PDF-файла в коде используется библиотека PyPDF2.

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

from PyPDF2 import PdfReader, PdfWriter


def split_pdf(input_path, output_prefix):
# Открываем PDF-файл для чтения
reader = PdfReader(input_path)

# Проходимся по страницам PDF-файла
for i in range(len(reader.pages)):
# Создаём объект для записи в PDF
writer = PdfWriter()
# Добавляем текущую страницу к объекту записи
writer.add_page(reader.pages[i])

# Формируем путь для сохранения выходного файла
output_path = f"{output_prefix}_{i}.pdf"

# Открываем файл для записи в режиме для бинарного чтения
with open(output_path, "wb") as f:
# Записываем содержимое страницы в файл
writer.write(f)


if __name__ == "__main__":
split_pdf("document.pdf", "output")


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

Библиотека mutagen предоставляет возможности для работы с аудиофайлами и метаданными.

Она поддерживает различные форматы аудио, такие как MP3, FLAC, Ogg Vorbis, WAV и другие.

Основные возможности библиотеки:
🔵Чтение и запись метаданных аудиофайлов, таких как название трека, исполнитель, альбом, год и т.д.
🔵Изменение и обновление метаданных аудиофайлов.
🔵Извлечение информации о длительности аудиофайла и его кодеке.
🔵Работа с различными форматами метаданных, такими как ID3v1, ID3v2, APEv2 и другими.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍5🔥1
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 fetch_random_meal():
response = requests.get("http://themealdb.com/api/json/v1/1/random.php")
response.raise_for_status()
meal_detail = response.json().get("meals", [])[0]
return meal_detail


def display_meal_details(meal_detail):
translator = Translator()
menu_name = translator.translate(meal_detail.get("strMeal", "Неизвестно"), dest='ru')
menu_category = translator.translate(meal_detail.get("strCategory", "Неизвестно"), dest='ru')
menu_tags = translator.translate(meal_detail.get("strTags", "Неизвестно"), dest='ru')
menu_country = translator.translate(meal_detail.get("strArea", "Неизвестно"), dest='ru')
menu_instruction = translator.translate(meal_detail.get("strInstructions", "Никаких инструкций нет."), dest='ru')
menu_video = meal_detail.get("strYoutube", "Видео недоступно")

print("-------------------------------------------------------------")
print(f"Давайте приготовим {menu_name.text} на ужин!")
print(f"Это меню из {menu_country.text} и оно относится к категории {menu_category.text}!")
print(f"Теги: {menu_tags.text}")
print(f"Вы можете посмотреть видео по ссылке: {menu_video} или следовать инструкциям для приготовления:\n{menu_instruction.text}")
print("-------------------------------------------------------------")


def main():
try:
meal_detail = fetch_random_meal()
display_meal_details(meal_detail)
except requests.RequestException as e:
print(f"Ошибка при получении данных: {e}")


if __name__ == "__main__":
main()


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

Библиотека dtale предоставляет простой и интуитивно понятный интерфейс для интерактивного исследования и визуализации данных.

Она строится на основе pandas и позволяет пользователям работать с DataFrame непосредственно через веб-интерфейс.

Основные возможности библиотеки:
🔵Фильтрация, сортировка и выбор данных.
🔵Просмотр метаинформации о данных, таких как типы столбцов и наличие пропусков.
🔵Генерация различных типов графиков (гистограммы, линейные графики, scatter plots и т.д.).
🔵Настройка параметров визуализаций через интуитивный интерфейс.
🔵Возможность редактировать значения в DataFrame.
🔵Добавление и удаление столбцов и строк.
🔵Встроенные функции для анализа распределения данных.
🔵Возможность вычисления различных статистических показателей.
🔵Легкая интеграция с Jupyter Notebook и JupyterLab для удобного использования в рабочих процессах анализа данных.

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

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

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

В данной статье рассмотрим, как работает функция divmod() в Python.

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

Для отслеживания изменений в коде используется класс PatternMatchingEventHandler из библиотеки watchdog.

Класс watchdog.events.PatternMatchingEventHandler предоставляет возможность обрабатывать события, связанные с изменениями файлов, основываясь на шаблонах сопоставления.

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

import time
from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler


class MyHandler(PatternMatchingEventHandler):
# Определяем шаблоны файлов для отслеживания
patterns = ["*.txt", "*.py"]

def process(self, event):
# Выводим путь к файлу и тип события
print(event.src_path, event.event_type)

def on_modified(self, event):
# Вызываем метод process при изменении файла
self.process(event)

def on_created(self, event):
# Вызываем метод process при создании файла
self.process(event)


if __name__ == '__main__':
event_handler = MyHandler()
observer = Observer()
# Установка пути к текущей директории
path = '.'
# Запланировать отслеживание событий в указанной директории рекурсивно
observer.schedule(event_handler, path, recursive=True)
observer.start()

try:
while True:
# Пауза на 1 секунду
time.sleep(1)
except KeyboardInterrupt:
# Остановка Observer при обнаружении прерывания с клавиатуры
observer.stop()
# Ожидание завершения Observer
observer.join()


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