Получаем данные о системе
Кроссплатформенная библиотека psutil позволяет получать информацию о процессоре, памяти, диске, сети, датчиках и запущенных процессах в системе. Примеры базового использования показаны на картинке.
Если говорить про практические применение, psutil полезен в основном для мониторинга системы, ограничения ресурсов процессов и управления запущенными процессами.
Помимо привычных Windows, MacOS и Linux, библиотека также поддерживает системы FreeBSD, OpenBSD, NetBSD, Sun Solaris и AIX.
#psutil
Кроссплатформенная библиотека psutil позволяет получать информацию о процессоре, памяти, диске, сети, датчиках и запущенных процессах в системе. Примеры базового использования показаны на картинке.
Если говорить про практические применение, psutil полезен в основном для мониторинга системы, ограничения ресурсов процессов и управления запущенными процессами.
Помимо привычных Windows, MacOS и Linux, библиотека также поддерживает системы FreeBSD, OpenBSD, NetBSD, Sun Solaris и AIX.
#psutil
Работа с методом str.replace() в Python
Метод принимает два основных аргумента: первый - это подстрока, которую нужно заменить в исходной строке, а второй - это подстрока, на которую происходит замена.
Кроме того, существует третий необязательный аргумент, определяющий количество замен старой подстроки на новую. Если он не указан, метод заменяет все вхождения.
#python #replace
Python
предлагает множество удобных встроенных методов для работы со строками. Один из таких методов - str.replace()
, который используется для замены частей строки.Метод принимает два основных аргумента: первый - это подстрока, которую нужно заменить в исходной строке, а второй - это подстрока, на которую происходит замена.
Кроме того, существует третий необязательный аргумент, определяющий количество замен старой подстроки на новую. Если он не указан, метод заменяет все вхождения.
#python #replace
PyAutoGUI
PyAutoGUI позволяет Python управлять мышью и клавиатурой для автоматизации взаимодействия с другими приложениями. Пакет работает в Windows, macOS и Linux на Python 2 и 3.
Из ключевого функционала можно выделить следующее:
— Передвижение курсора и нажатие на кнопки мыши;
— Набор текста, например для заполнения форм;
— Скриншоты, поиск указанных изображений на экране (например, иконки) и нажатие на них;
— Поиск приложения на экране, изменение размера его окна, перемещение по экрану и т. д.
Основные функции показаны в примере на картинке выше, остальное — в документации проекта.
#pyautogui
PyAutoGUI позволяет Python управлять мышью и клавиатурой для автоматизации взаимодействия с другими приложениями. Пакет работает в Windows, macOS и Linux на Python 2 и 3.
Из ключевого функционала можно выделить следующее:
— Передвижение курсора и нажатие на кнопки мыши;
— Набор текста, например для заполнения форм;
— Скриншоты, поиск указанных изображений на экране (например, иконки) и нажатие на них;
— Поиск приложения на экране, изменение размера его окна, перемещение по экрану и т. д.
Основные функции показаны в примере на картинке выше, остальное — в документации проекта.
#pyautogui
Поиск уникальных слов в текстовом файле в Python
Чтобы найти уникальные слова в текстовом файле в Python, необходимо очистить текст, найти слова, а затем найти уникальные.
Подробнее можно почитать здесь.
Чтобы найти уникальные слова в текстовом файле в Python, необходимо очистить текст, найти слова, а затем найти уникальные.
Подробнее можно почитать здесь.
Паттерн проектирования Singleton
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Метод
В примере мы проверяем, есть ли значение у атрибута
То есть при вызове конструктора класса
#классы #паттерны
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Метод
__new__
вызывается для создания экземпляра класса, перед вызовом __init__
. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).В примере мы проверяем, есть ли значение у атрибута
instance
. Если нет, то присваиваем атрибуту экземпляр этого же класса. А если уже экземпляр создан, то просто его возвращаем.То есть при вызове конструктора класса
Singleton
, будет возвращаться один и тот же объект из памяти.#классы #паттерны
Применяем pathlib взамен os
В Python 3 стандартная библиотека включает модуль
Одно из наиболее впечатляющих преимуществ использования
В общем, этот модуль предлагает замену функциям для работы с файловыми путями из модуля
#path #os
В Python 3 стандартная библиотека включает модуль
pathlib
, предоставляющий функцию Path
, которая обеспечивает все необходимое для эффективной работы с путями к файлам.Одно из наиболее впечатляющих преимуществ использования
pathlib
- это упрощение работы с путями за счет использования Path
вместо os.path.join
, представляя более простой и изящный метод, как показано на изображении.В общем, этот модуль предлагает замену функциям для работы с файловыми путями из модуля
os
, таким как os.mkdir
или os.path
, на более удобные альтернативы.#path #os
Сбер представил российскую альтернативу JetBrains — GigaIDE Pro
На конференции ЦИПР Сбер презентовал новую версию интегрированной среды разработки GigaIDE Pro, которая заменяет зарубежные аналоги. Старший вице-президент Сбера Андрей Белевцев отметил, что GigaIDE Pro обеспечивает устойчивость и безопасность ИТ-процессов, минимизируя зависимость от иностранных платформ.
В новой версии GigaIDE Pro для Python-разработки добавили инструменты быстрого создания проектов на Django и Flask, а также навигацию по коду для фреймворков Spring и Jakarta. По данным Сбера, GigaIDE Pro уже занимает 14% рынка IDE в России.
На конференции ЦИПР Сбер презентовал новую версию интегрированной среды разработки GigaIDE Pro, которая заменяет зарубежные аналоги. Старший вице-президент Сбера Андрей Белевцев отметил, что GigaIDE Pro обеспечивает устойчивость и безопасность ИТ-процессов, минимизируя зависимость от иностранных платформ.
В новой версии GigaIDE Pro для Python-разработки добавили инструменты быстрого создания проектов на Django и Flask, а также навигацию по коду для фреймворков Spring и Jakarta. По данным Сбера, GigaIDE Pro уже занимает 14% рынка IDE в России.
Голосовой вывод в Python с помощью pyttsx3
Сегодня мы поговорим о библиотеке
Что такое pyttsx3?
Пример использования
Сегодня мы поговорим о библиотеке
pyttsx3
, которая предоставляет удобные инструменты для реализации голосового вывода текста с использованием Python
. Эта библиотека может пригодиться, например, для создания ассистентов, аудиокниг, аудиогидов и многих других приложений.Что такое pyttsx3?
pyttsx3
- это простой в использовании модуль Python
для синтеза речи. Он предоставляет возможность преобразования текста в речь с различными настройками, такими как выбор голоса и регулирование скорости речи. Эта библиотека основана на популярной библиотеке pyttsx
, но с более активной поддержкой и совместимостью с Python 3
.pyttsx3
также поддерживает события, что делает его полезным инструментом для создания интерактивных приложений с голосовым выводом.Пример использования
pyttsx3
на фото.Аргументы и параметры командной строки
Для обработки передаваемых аргументов и создания удобный интерфейс командной строки в python есть отличный модуль
Для начала нам нужно создать объект парсера
Первым параметром
После добавления всех аргументов, нам нужно их спарсить с помощью метода
#argparse
Для обработки передаваемых аргументов и создания удобный интерфейс командной строки в python есть отличный модуль
argparse
.Для начала нам нужно создать объект парсера
ArgumentParser
, в который мы уже сможем добавить аргументы с нужными параметрами с помощью метода add_argument
.Первым параметром
add_argument
принимает либо имя обязательного позиционного аргумента, либо список опционального аргумента (опциональный аргумент идентифицируется через -
). Также у add_argument
есть множество необязательных опциональных параметров для работы с передаваемым значением аргумента, о них можете почитать в данной статье.После добавления всех аргументов, нам нужно их спарсить с помощью метода
parse_args
, на выходе мы получим объект со всеми содержащимися аргументами.#argparse
Делегирующие генераторы
Давайте создадим простенькую генераторную функцию
А также ещё одну генераторную функцию
Цикл, который можно написать в
Грубо говоря, такая конструкция является неким туннелем передачи данных туда и обратно. В нашей ситуации
#генераторы
Давайте создадим простенькую генераторную функцию
subgen
, которая будет возвращать числа от 0 до переданного аргумента.А также ещё одну генераторную функцию
delegator
, которая будет возвращать числа из итерируемого объекта source
, который передадим в качестве аргумента.Цикл, который можно написать в
delegator
, можно заменить всего лишь одной строчкой. То есть yield from
заменяет цикл for
, в котором только возвращаются значения через yield
.Грубо говоря, такая конструкция является неким туннелем передачи данных туда и обратно. В нашей ситуации
delegator
можно назвать делигирующим генератором, а subgen
подгенератором.#генераторы
PyQtGraph
PyQtGraph — это библиотека Python для создания интерактивных 2D и 3D графиков, а также элементов графического интерфейса (GUI). Она основана на PyQt (или PySide) и NumPy, что делает ее мощным и универсальным инструментом для научных, инженерных и исследовательских задач.
#python
PyQtGraph — это библиотека Python для создания интерактивных 2D и 3D графиков, а также элементов графического интерфейса (GUI). Она основана на PyQt (или PySide) и NumPy, что делает ее мощным и универсальным инструментом для научных, инженерных и исследовательских задач.
#python
Создание скриншотов с использованием модуля pyscreenshot
Модуль
Для захвата изображения используется метод
Этот модуль оказывается особенно полезным, например, при логировании скриптов, использующих
#python #pyscreenshot
Модуль
pyscreenshot
, обеспечивая кросс-платформенную функциональность, позволяет легко создавать скриншоты как всего экрана, так и его отдельных частей. Для работы этого модуля необходимо установить библиотеку Pillow
.Для захвата изображения используется метод
grab
, для его отображения – show
, а для сохранения – save
. В метод grab
можно также передать аргумент bbox
, чтобы ограничить захват только определенной областью экрана.Этот модуль оказывается особенно полезным, например, при логировании скриптов, использующих
Selenium
. Selenium
может открывать браузер и выполнять различные операции в нем, и использование pyscreenshot
позволяет создавать скриншоты для последующего анализа и отладки.#python #pyscreenshot
Читаем текст с картинки используя Tesseract от Google
Чтобы извлечь текст из изображения, используйте метод
Рекомендуется использовать библиотеку
Пример кода:
#python #pytesseract
Google
разработал систему Tesseract
для извлечения текста из изображений через оптическое распознавание символов.Pytesseract
- это удобная оболочка для системы Tesseract
, облегчающая её использование.Чтобы извлечь текст из изображения, используйте метод
image_to_string
. Для работы с русским текстом укажите аргумент lang
как 'rus'
.Рекомендуется использовать библиотеку
pillow
для открытия изображений, хотя можно также просто указать путь к файлу.Пример кода:
from PIL import Image
import pytesseract
# Открываем изображение с помощью Pillow
image = Image.open('image.jpg')
# Используем pytesseract для извлечения текста
text = pytesseract.image_to_string(image, lang='rus')
print(text)
#python #pytesseract
Сохранение документации функции при декорировании
У декораторов существует ряд проблем, одна из которых заключается в том, что, после оборачивания функции в декоратор, на выходе мы не можем получить информацию атрибутов
Вместо значений данных атрибутов исходной функции мы будем получать значения функции обертки.
Для решения этой проблемы можно воспользоваться декоратором
#декораторы #wraps
У декораторов существует ряд проблем, одна из которых заключается в том, что, после оборачивания функции в декоратор, на выходе мы не можем получить информацию атрибутов
__name__
и __doc__
, нужные для документации функции. Вместо значений данных атрибутов исходной функции мы будем получать значения функции обертки.
Для решения этой проблемы можно воспользоваться декоратором
functools.wraps
, применяя его к обертке нашего декоратора. В результате имя и сигнатура функции, передаваемой в декоратор, будут копироваться в обертку.#декораторы #wraps
🌐 Копирование веб-содержимого в Python с библиотекой pywebcopy
Библиотека
Пример кода:
В данном примере используется функция
Библиотека💻
#python #pywebcopy
Библиотека
pywebcopy
облегчает автоматизацию процесса загрузки веб-содержимого, что может быть полезным при создании веб-скраперов, загрузчиков или других приложений, требующих копирования данных из Интернета.Пример кода:
from pywebcopy import save_webpage
url = 'https://www.example.com'
target_folder = 'path/to/folder'
save_webpage(url, target_folder)
В данном примере используется функция
save_webpage
для копирования веб-содержимого указанной веб-страницы (url) в указанную целевую папку (target_folder).Библиотека
pywebcopy
предоставляет простой и удобный способ копирования веб-содержимого прямо из Python
. Она может быть полезна при создании скриптов для загрузки данных с веб-страниц, автоматизации сбора информации или создании зеркал сайтов. #python #pywebcopy
Please open Telegram to view this post
VIEW IN TELEGRAM
Поверхностное копирование
Копирование объектов может быть «поверхностное» (shallow) или «глубокое» (deep). Различия между ними заключаются в том, как обрабатываются вложенные объекты.
При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты.
#python
Копирование объектов может быть «поверхностное» (shallow) или «глубокое» (deep). Различия между ними заключаются в том, как обрабатываются вложенные объекты.
При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты.
#python
Хэширование
Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.
Для хэширования значений есть встроенная функция
Но изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выбросит соответствующую ошибку.
Здесь, кстати, есть две пасхалки. Хэш бесконечности равен перым цифрам числа Пи, а хэш Not a Number равен нулю.
А еще случаются коллизии: например, хэши чисел -1 и -2 одинаковы.
#hash
Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.
Для хэширования значений есть встроенная функция
hash()
. Используется она в основном для сравнения значений разных объектов — сравнивать хэши легче и выгоднее.Но изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выбросит соответствующую ошибку.
Здесь, кстати, есть две пасхалки. Хэш бесконечности равен перым цифрам числа Пи, а хэш Not a Number равен нулю.
А еще случаются коллизии: например, хэши чисел -1 и -2 одинаковы.
#hash
Работа с YAML-Файлами в Python с Помощью Библиотеки PyYAML
Результат (файл
В этом примере мы используем
Библиотека🐍
#python #yaml #pyyaml
PyYAML
позволяет эффективно работать с файлами в формате YAML (YAML Ain't Markup Language)
, который широко используется для конфигураций, настроек и обмена данными в структурированной форме.import yaml
data_to_write = {'name': 'John Doe', 'age': 30, 'city': 'Example City'}
with open('example.yaml', 'w') as file:
yaml.dump(data_to_write, file, default_flow_style=False)
with open('example.yaml', 'r') as file:
loaded_data = yaml.safe_load(file)
print(f"Загруженные данные: {loaded_data}")
Результат (файл
example.yaml
):age: 30
city: Example City
name: John Doe
В этом примере мы используем
PyYAML
для записи словаря data_to_write
в файл example.yaml
и затем загружаем данные из этого файла обратно в переменную loaded_data
.Библиотека
PyYAML
предоставляет удобные средства для работы с данными в формате YAML
в Python
. Будь то сохранение конфигураций, обмен структурированными данными или другие сценарии, где YAML
имеет преимущество, PyYAML
обеспечивает легкость в использовании и читаемый код#python #yaml #pyyaml
Please open Telegram to view this post
VIEW IN TELEGRAM
Pyrogram: Работа с Telegram API на Python
Для начала работы с
Одним из ключевых преимуществ
Документация доступна тут
Pyrogram
- это выдающаяся библиотека на Python, предназначенная для удобной и эффективной работы с Telegram API
. Она предоставляет разработчикам возможность создавать ботов, приложения и скрипты для Telegram Bot API,
а также взаимодействовать с Telegram User API
для отправки сообщений, управления чатами и многих других задач.Для начала работы с
Pyrogram
, вы можете установить библиотеку с помощью pip
. Затем вы можете легко настроить своих ботов и приложения, задавая им различные функциональности. Pyrogram
обеспечивает удобное взаимодействие с API
, что делает разработку ботов и приложений более простой и эффективной.Одним из ключевых преимуществ
Pyrogram
является его высокая производительность и поддержка асинхронных операций. Это позволяет обрабатывать большое количество запросов и взаимодействий с Telegram
в реальном времени.Pyrogram
также предоставляет обширные возможности для работы с различными аспектами Telegram
, включая отправку текстовых сообщений, медиа-файлов, администрирование чатов и многое другое. Благодаря этой библиотеке, разработчики могут создавать мощные и гибкие Telegram-боты и юзерботы, которые отвечают на разнообразные потребности пользователей.Документация доступна тут
Что такое глубокая копия?
Глубокая копия используется для хранения значений, которые уже скопированы. Глубокая копия не копирует ссылочные указатели на объекты.
Она создает ссылку на объект, и новый объект, на который указывает другой, сохраняется. В отличие от неглубокой копии, изменения, внесенные в исходную копию, не повлияют ни на одну другую копию, использующую объект. Это значит, что они не привязаны.
Глубокая копия используется для хранения значений, которые уже скопированы. Глубокая копия не копирует ссылочные указатели на объекты.
Она создает ссылку на объект, и новый объект, на который указывает другой, сохраняется. В отличие от неглубокой копии, изменения, внесенные в исходную копию, не повлияют ни на одну другую копию, использующую объект. Это значит, что они не привязаны.