Русский
Открыть в Telegram
6 535подписчиков−43 за неделю
637средний охват поста
9.8%ER — охват к подписчикам
6постов за 30 дней
P
Pythoner
Фотография
✈️TOML (Tom's Obvious, Minimal Language) - это простой формат конфигурационного файла, который стремится быть более понятным и легким для чтения, чем JSON или XML. Они обеспечивают структурированный способ хранения настроек и конфигураций для приложения. TOML использует простой синтаксис, который легко читается и понимается, что делает его идеальным для использования в качестве языка конфигурации. ➡️Как установить библиотеку toml в Python? Чтобы начать работу с TOML в Python, вам сначала нужно установить библиотеку toml. Вы можете сделать это с помощью инструмента pip, который является стандартным менеджером пакетов для Python. Просто откройте терминал и введите следующую команду: pip install toml. ➡️Как считывать TOML-конфиги в Python? Считывание TOML-конфигов в Python легко осуществляется с помощью библиотеки toml. Вы просто открываете файл с помощью встроенной функции open(), а затем используете функцию toml.load() для разбора содержимого TOML-конфига. Вот простой пример: ➡️TOML-конфиг: [server] host = "127.0.0.1" port = 8000 [database] user = "admin" password = "secret" ➡️Python код: import toml config = toml.load('config.toml') print(config) ⬆️Результат выполнения этого кода: { 'server': { 'host': '127.0.0.1', 'port': 8000 }, 'database': { 'user': 'admin', 'password': 'secret' } } ⬆️В этом словаре, 'server' и 'database' - это ключи, соответствующие разделам в TOML-конфиге, и они содержат под-словари с параметрами этих разделов. Вы можете получить доступ к любому параметру конфигурации, используя его ключи. Например, для получения адреса хоста сервера вы можете использовать config['server']['host']. 🐍Pythoner
29 · 2.2K ·
Pythoner
Фотография
✈️Pyppeteer - это библиотека Python для автоматизации браузера Chromium с помощью Puppeteer JavaScript API. Это мощный инструмент для веб-скрейпинга, тестирования и автоматизации веб-браузера. ➡️Инсталляция библиотеки Pyppeteer Установка Pyppeteer проста и прямолинейна. Все, что вам нужно, это Python 3.6 или выше. Установите Pyppeteer, используя pip: pip install pyppeteer. В процессе установки Pyppeteer скачает последнюю версию Chromium. ➡️Функциональные возможности Pyppeteer Pyppeteer предлагает богатый набор функций для автоматизации веб-браузера. Вы можете автоматизировать ввод данных, клики по ссылкам, скачивание файлов и многое другое. ➡️Примеры использования Pyppeteer Одним из самых распространенных применений Pyppeteer является создание снимков веб-страниц. Все, что вам нужно сделать, это создать экземпляр браузера, открыть новую страницу, перейти на URL и сделать снимок. import asyncio from pyppeteer import launch async def take_screenshot(url, save_path): browser = await launch() page = await browser.newPage() await page.goto(url) await page.screenshot({'path': save_path}) await browser.close() url = '<https://www.example.com>' save_path = 'example.png' asyncio.get_event_loop().run_until_complete(take_screenshot(url, save_path)) ➡️Pyppeteer также может быть использован для автоматического тестирования веб-приложений, включая взаимодействие с JavaScript и AJAX. import asyncio from pyppeteer import launch async def test_website(url): browser = await launch() page = await browser.newPage() await page.goto(url) await page.click('#myButton') await page.waitForSelector('#myResult') result = await page.evaluate('document.querySelector("#myResult").innerText') await browser.close() return result url = '<https://www.example.com>' asyncio.get_event_loop().run_until_complete(test_website(url)) Ссылка на либу — https://pypi.org/project/pyppeteer/ 🐍Pythoner
34 · 2.2K ·
P
Фотография
🔥Pyrogram (в простонародье "Пирог") — это мощная библиотека для создания так называемых User Ботов для телеграмма. 🤖ЮзерБоты - это скрипты которые работают от лица личного аккаунта и могут выполнять все тоже что и человек. ➡️Например, можно запрограммировать автоответчик, который будет автоматически отвечать на определенные сообщения. ➡️Но в основном ЮзерБоты используют как дополнения к телеграму, например, встроенный калькулятор. Вы скорее всего уже видели их. Кто-то пишет комманду, скажем, .calc 2+2, а скрипт все считает и изменяя сообщение, выводит ответ. ⚡️Именно такого юзербота мы и будет создавать в следующих постах, так что подписывайся на канал, и включай уведомления! 🐍Pythoner
52 · 2.4K ·
P
Pythoner
Фотография
✈️Сегодня продолжим тему предыдущего поста и начнём создавать бота ➡️Начнем с самой базы - установки. python -m pip install pyrogram 🚀Для быстрой работы пирога лучше еще установить python -m pip install TgCrypto 👀Теперь можно и код писать ➡️Импорт: Импорт тут максимально простой. Просто из pyrogram импортируем модули через from / import: from pyrogram import Client # потом ещё будем добавлять ➡️Создание объекта бота: Как и в любом другом боте нам нужен объект, с помощью которого уже и осуществляется работа. В пироге это экземпляр принято называть app. В него нужно передать 💬Название, строка 💬API_ID, строка либо число (int) 💬API_HASH, строка Про API_ID и API_HASH поговорим чуток позже. app = Client("MyFirstUserBot", api_id, api_hash) ➡️Обработчики: Обработчики (хендлеры, handler) — это функции, которые срабатывают при определенном событии, например, при новом сообщении. В Pyrogram они в виде декорратора который начинается на "on" (с англ - при), наример @app.on_message, @app.on_chat_join_request. В декоратор следует передать фильтр, по которому будут выбираться случаи когда нужно чтобы обработчик сработал. В библиотеке есть встроенные фильтры, их надо импортировать, но их можно и самому написать (научимся позже) ➡️Как я говорил в предыдущем посте, нам нужно обрабатывать команды. Для этого, логично, надо создать обработчик сообщений, с фильтром, что это команда, и то что написали ее мы (мы ведь не хотим чтобы другие командовали вашим ботом?) @app.on_message(filters.command(["start"], prefixes=".") & filters.me) async def start(_, msg): pass ❕У обработчиков должен быть строгий порядок - от конкретных (например, команды), до более общих (всех сообщений) Правильный порядок хендлеров сообщений должен выглядеть так: ⚫ Команды ⚫ Сообщения с какими-то триггерами (например, если в слове есть слово "привет") ⚫ Все сообщения ➡️Запуск: Обработчики прописали, теперь пора это все дело запустить! Тут всё просто: app.run() ➡️API_ID / API_HASH: И, самое главное, без… Читать полностью →
52 · 2.2K ·
P
Pythoner
Фотография
🔥Продолжаем! ➡️Мы уже умеем создавать обработчики, теперь надо научится что-то делать, а не только принимать. В пироге функции отправки чего-либо начинаются на "send" - app.send_message, например. ➡️Чтобы детально разобраться в какой-то функции - надо заглянуть в документацию! Кстати, у pyrogram она очень удобная и понятная ⛓https://docs.pyrogram.org ⛓ ⬆️Нам нужен метод который отвечает за отправку сообщения. В документации слева в менюшке ищем Available Methods (Доступные методы) - далее - send_message (отправить сообщение). И видим полное описание этого метода, что он делает, какие параметры принимает, что возвращает и примеры. ➡️Сразу под названием видим описание метода, то что он делает Send text messages. То есть (отправляет текстовое сообщение) ➡️Ниже список параметров которые нужно в него передать. Давайте его разберем. chat_id (int | str) – Unique identifier (int) or username (str) of the target chat. For your personal cloud (Saved Messages) you can simply use “me” or “self”. For a contact that exists in your Telegram address book you can use his phone number (str). Или же (chat_id (int | str) — уникальный идентификатор (int) или имя пользователя (str) целевого чата. Для вашего личного облака (сохраненных сообщений) вы можете просто использовать «me» или «self». Для контакта, который существует в вашей адресной книге Telegram, вы можете использовать его номер телефона (str)) В самое первое — название параметра далее в скобках тип данных. "|" - это "или", "либо". Если в скобках есть оptional, то это значит что этот аргумент не обязательный. И последнее - описание. ⬆️Из цитаты нам становится понятно, что chat_id принимает ID чата в виде строки либо числа, либо номер телефона, либо "me"|"self" если надо отправить себе в избранное. ❔Второй параметр разберите сами text (str) – Text of the message to be sent. text (str) – Текст отправляемого сообщения. ❓тут совсем легко, так что, думаю, все справились, сюда надо передать строку с отправляемым текстом … Читать полностью →
39 · 2.1K ·
P
Pythoner
Фотография
🔥И снова новый, но последний пост по пирогу. В прошлый раз я обещал научить вытаскивать данные из сообщения, этим и займёмся! 🔎Давайте с начала просто посмотрим из чего состоит получаемый объект @app.on_message(filters.command(["start"], prefixes=".")) async def start(_, msg): print(msg) ⬆️В результате увидим много всяких данных. Самые часто используемые - id, text, from_user, chat reply_to_message(сообщение на которое ответили). ➡️Чтобы достать определенное значение надо перечислить ключи к нему через точку: ➖msg.text ➖msg.chat.id ➖msg.reply_to_message.date ➡️Теперь попробуем на практике, поприветствуем новых участников в группе @app.on_message(filters.chat([123,456]) & filters.new_chat_members) async def welcome(_, msg): new_members = [u.mention for u in msg.new_chat_members] text = 'Привет, ' + ", ".join(new_members) + "!" await msg.reply(text, True disable_web_page_preview=True) ⬆️Разберем этот код 💬Создаем Декоратор: 💬📰Из определенных чатов ([123,456]) 💬📰Для новых участников 💬Создаем функцию И тут начинается самое то, что нас интересует 💬Перебираем список новых участников, и из них берем параметр mention - имя с ссылкой. 💬Формируем текст сообщения, соеденяя список из новый участников с помощью *str.join()* (о нем мы говорили в прошлом посте ) 💬Отвечаем на сообщение ответом и без предпросмотора ссылок 👀Итог Мы научились доставать данные из сообщения и вспомнили фильтры с обработчиками. Надеюсь это серия постов вам понравилась. 🐍Pythoner
37 · 2K ·
Pythoner
Видео
video_2024-09-11_03-17-40.mp4 · 1.1 МБ
😕Джун пытается предложить свою идею на общей встрече
28 · 2.1K ·
P
Фотография
✈️Иногда элементы массива изначально неизвестны, но массив для их хранения необходим сейчас. Поэтому в NumPy есть функции для создания массива с исходным содержимым (по умолчанию тип массива — float64) >>> import numpy as np ➡️zeros((n, m)) - создает массив нулей с размером n x m. >>> np.zeros((3, 2)) array([[0., 0.], [0., 0.], [0., 0.]]) ➡️ones((n, m)) - создает массив единиц с размером n x m. >>> np.ones((2, 3)) array([[1., 1., 1.], [1., 1., 1.]]) >>> np.ones((2, 2), dtype=np.int16) array([[1, 1], [1, 1]], dtype=int16) ➡️empty() - создает массив без заполнения. Исходное содержимое случайно и зависит от состояния памяти на момент создания массива (мусор, что в ней хранится). >>> np.empty((2,2)) array([[5.e-324, 0.e+000], [0.e+000, 5.e-324]]) 📁Документация NumPy 🐍Pythoner
12 · 2.3K ·
Pythoner
Фотография
➡️Django чуть медленнее Flask из-за своей более высокой функциональности и накладных расходов. Однако на практике разница в скорости работы между ними незначительна для большинства веб-приложений. ➡️Flask может быть немного быстрее при обработке простых запросов, но Django лучше масштабируется при увеличении нагрузки благодаря встроенным инструментам кэширования и оптимизации. Кроме того, производительность в большей степени зависит от архитектуры и качества кода конкретного приложения. 🐍Pythoner
7 · 2.1K ·
P
Фотография
✈️Да, функции можно объявлять внутри других функций. Такая вложенная функция будет видна и доступна для вызова только внутри родительской функции, в которой она определена. ➡️Это называется замыканием и позволяет ограничить область видимости вложенной функции, чтобы она не загрязняла глобальное пространство имен. 🔎Вложенные функции могут быть полезны, когда нужно реализовать вспомогательную логику, связанную только с работой родительской функции. 🐍Pythoner
14 · 2.1K ·
P
Pythoner
Фотография
➡️Подготовка базы данных Прежде чем начать вставку внешних ключей, необходимо подготовить базу данных и создать таблицы, между которыми мы будем устанавливать связи. Рассмотрим простой пример двух таблиц: authors и books. Таблица authors будет содержать информацию об авторах, а таблица books - информацию о книгах, написанных этими авторами. Для начала создадим эти таблицы с использованием языка SQL. CREATE TABLE authors ( author_id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL ); CREATE TABLE books ( book_id SERIAL PRIMARY KEY, title VARCHAR(100) NOT NULL, author_id INT, FOREIGN KEY (author_id) REFERENCES authors (author_id) ); ➡️Вставка данных и внешних ключей с помощью Python Теперь, когда наша база данных готова, мы можем перейти к вставке данных и внешних ключей с помощью Python. Для этого нам понадобится библиотека psycopg2, которая позволяет взаимодействовать с PostgreSQL базой данных. Убедитесь, что она установлена: pip install psycopg2 Далее, напишем скрипт на Python, который будет вставлять данные в таблицы authors и books, устанавливая соответствующие внешние ключи. import psycopg2 # Соединение с базой данных conn = psycopg2.connect( dbname="your_db_name", user="your_db_user", password="your_db_password", host="your_db_host", port="your_db_port" ) cursor = conn.cursor() # Вставка данных в таблицу authors cursor.execute("INSERT INTO authors (name) VALUES (%s) RETURNING author_id", ("J.K. Rowling",)) author_id = cursor.fetchone()[0] #Вставка данных в таблицу books с указанием внешнего ключа cursor.execute("INSERT INTO books (title, author_id) VALUES (%s, %s)", ("Harry Potter", author_id)) # Сохранение изменений и закрытие соединения conn.commit() cursor.close() conn.close() ➡️Проверка и управление целостностью данных Внешние ключи помогают поддерживать целостность данных в базе данных. Например, они не позволяют вставлять в таблицу books значения author_id, которых нет в таблице authors. Рассмотрим,… Читать полностью →
25 · 1.8K ·
P
❓Разбор Все, что вам стоит знать - это // —> целочисленное деление .count —> считает количество повторений текста/символа в строке
1 · 2K ·
Pythoner
Фотография
1️⃣AIOGram: ➕Поддерживает асинхронное программирование, что позволяет эффективно обрабатывать множество запросов без блокирования основного потока. ➕Хорошо документирована и имеет большое сообщество разработчиков. ➕Предоставляет обширный набор функций для работы с Telegram API. ➖Деплоится не на всех бесплатных сервисах. 2️⃣python-telegram-bot: ➕Простой в использовании и понимании, особенно для новичков в разработке телеграм-ботов. ➕Хорошо документирована и имеет активное сообщество разработчиков. ➕Предоставляет обширный набор функций для работы с Telegram API. ➖Не поддерживает асинхронное программирование, поэтому может быть неэффективным при обработке большого количества запросов одновременно. ➖Из-за синхронного подхода может возникать блокирование основного потока при выполнении долгих операций. 3️⃣telebot: ➕Простой в использовании и понимании. ➕Хорошо документирована и имеет небольшое, но активное сообщество разработчиков. ➕Предоставляет обширный набор функций для работы с Telegram API. ➖Не поддерживает асинхронное программирование, поэтому может быть неэффективным при обработке большого количества запросов одновременно. ➖Некоторые функции могут быть менее гибкими или сложными в использовании по сравнению с другими библиотеками. 4️⃣twx.botapi: ➕Простой в использовании и понимании, особенно для новичков в разработке телеграм-ботов. ➕Хорошо документирована и имеет некоторые примеры использования. ➕Предоставляет базовый набор функций для работы с Telegram API. ➖Ограничена в функциональности и не предоставляет некоторые продвинутые возможности, доступные в других библиотеках. ➖Неактивно поддерживается и может быть устаревшей. ❗️Выбор конкретной библиотеки зависит от ваших потребностей, уровня опыта и предпочтений в разработке. 🐍Pythoner
27 · 2K ·
Pythoner
Фотография
➡️Что такое importlib? Это встроенная библиотека Python, которая предоставляет интерфейс для механизма импорта. С ее помощью вы можете программно импортировать модули, перезагружать их и даже создавать свои собственные импортеры! ➡️Вот простой пример использования importlib: import importlib # Динамический импорт модуля math = importlib.import_module('math') # Использование импортированного модуля print(math.pi) # Выводит 3.141592653589793 # Перезагрузка модуля importlib.reload(math) ➡️С importlib вы можете: • Динамически импортировать модули • Перезагружать модули во время выполнения • Создавать пользовательские импортеры • Работать с пространствами имен пакетов 🔎Эта библиотека особенно полезна при разработке плагинов, создании расширяемых приложений или отладке кода. ⛓Документация 🐍Pythoner
18 · 2K ·
P
Фотография
✈️difflib особенно полезен для работы с текстами. Содержит функции для создания отчётов в нескольких распространённых форматах, в том числе в HTML. ➡️Класс Differ(), например, выводит различия в отдельных строках, сопровождая их префиксами. ➡️Класс SequenceMatcher() позволяет вычислить сходство между строками. Функция get_opcodes() возвращает список инструкций для приведения первой последовательности к виду второй. ➡️Пример: import difflib # Две строки для сравнения string1 = "Привет, как дела?" string2 = "Привет, как у тебя дела?" # Используем SequenceMatcher для получения отличий d = difflib.Differ() diff = d.compare(string1.split(), string2.split()) # Вывод различий print('\n'.join(diff)) ⬆️Как это работает: Мы используем difflib.Differ() для сравнения двух строк, разбивая их на слова.Метод compare возвращает итератор, который показывает различия между строками. - Результат отображает изменения с символами: - – если слова одинаковые, - - – если слово присутствует только в первой строке, - + – если слово присутствует только во второй строке. 🔎Таким образом, difflib полезен в ситуациях, когда нужно определить не только факт различия между двумя последовательностями, но и конкретные места, где эти различия возникают. 🐍Pythoner
24 · 2K ·
Pythoner
Фотография
✈️Plumbum — это библиотека, предназначенная для упрощения работы с командной строкой и вызова внешних программ. Она упрощает автоматизацию задач, которые требуют вызова командной строки из\ кода. Это может быть запуск скриптов, утилит, вызов программ для обработки данных и т. д. ➡️Основные возможности библиотеки: — Удобный синтаксис для запуска команд и программ из Python кода. Позволяет вызывать команды командной строки так же просто, как обычные функции. — Автоматическое формирование командной строки. Можно передавать аргументы и параметры в виде обычных переменных, Plumbum сам сформирует командную строку. — Перенаправление ввода/вывода. Поддержка стандартных операторов Unix для работы с потоками данных. — Проверка кодов возврата и обработка ошибок. — Локальное или удаленное выполнение. Возможность запускать команды как локально, так и по SSH на удаленных хостах. ➡️Пример from plumbum import local ls = local["ls"] output = ls("-l") print("Вывод команды 'ls -l':") print(output) # Также можно выполнять составные команды # Например, мы можем использовать команду `grep` для фильтрации вывода grep = local["grep"] result = (ls("-l") | grep[".py"])() # Пайпим вывод ls в grep print("\nВывод файлов с расширением .py:") print(result) ⬆️Пояснение кода: 💬Мы импортируем local из модуля plumbum. 💬Определяем команду ls с помощью local["ls"]. 💬Выполняем команду с аргументом -l, который выводит содержимое текущей директории в длинном формате. 💬Вывод команды сохраняем в переменной output и затем печатаем. 💬Также мы создаем команду grep и используем возможность пайпинга (|) для фильтрации вывода команды ls, чтобы показать только файлы с расширением .py. 🐍Pythoner
28 · 1.8K ·
P
Фотография
✈️EEL (Easy Electron) — это библиотека, которая упрощает создание desktop-приложений с использованием технологий веб-разработки (HTML, CSS и Javascript). ➡️Основные возможности EEL: 💬Позволяет создавать графический интерфейс приложения при помощи веб-технологий. 💬Обеспечивает взаимодействие между Python кодом и Javascript кодом. Python может вызывать JS функции, а JS может вызывать Python. 💬Автоматически обрабатывает асинхронные вызовы между JS и Python. 💬Встроенный локальный веб-сервер для отображения HTML/JS интерфейса. ➡️Пример import eel eel.init('web') @eel.expose def say_hello(x): print('Hello %s' % x) eel.say_hello('World') eel.start('index.html') ⬆️В этом примере импортируется модуль eel и инициализируется папка с HTML и JS файлами — 'web'. Декоратор @eel.expose делает функцию say_hello() доступной для вызова из Javascript. Вызов eel.say_hello() вызывает эту функцию из Python кода. 🐍Pythoner
39 · 1.8K ·
P
Фотография
✈️Логирование, или журналирование, – это процесс записи событий в системе. Эти события могут включать в себя всё: от информации о том, что программа успешно завершила свою работу, до деталей о возникших ошибках. Логи могут быть сохранены в различных форматах и на различных носителях, включая файлы, базы данных или даже удаленные серверы. ➡️Преимущества логирования Логирование имеет множество преимуществ. Оно помогает разработчикам отслеживать и исправлять ошибки, анализировать поведение системы и даже предотвращать возможные проблемы в будущем. Кроме того, логи могут быть использованы для аудита, что особенно важно для обеспечения безопасности системы. ➡️Как использовать логирование? Применять логирование можно разными способами. Во-первых, можно использовать встроенные средства ОС или специализированные инструменты для логирования. Во-вторых, можно внедрять функции логирования непосредственно в свои приложения. В любом случае, важно помнить о необходимости разделять логи по уровням важности и обеспечивать их надлежащее хранение и архивацию. 🐍Pythoner
10 · 2.1K ·
P
Pythoner
Фотография
✈️Python имеет встроенный модуль zipfile, который предоставляет функционал для работы с архивами ZIP. Давайте создадим простой пример, чтобы продемонстрировать его возможности: import zipfile # Создаем новый ZIP файл with zipfile.ZipFile('новый_архив.zip', 'w') as new_zip: # Добавляем файлы в архив new_zip.write('file1.txt') new_zip.write('file2.txt') # Можно добавить еще файлы по мере необходимости ⬆️Этот небольшой код создает новый ZIP архив под именем новый_архив.zip и помещает в него файлы file1.txt и file2.txt. ➡️Модуль zipfile обладает широкими возможностями, позволяя извлекать файлы, читать содержимое архива, добавлять и удалять файлы, а также многое другое. Это удобный инструмент, который позволяет манипулировать архивами непосредственно из кода Python.Если вам интересно узнать больше о модуле zipfile или экспериментировать с архивами в Python, рекомендую обратиться к официальной документации Python. 🐍Pythoner
29 · 2.1K ·

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем