Python Skills 🐍
303 subscribers
1.02K photos
17 videos
302 links
Канал полезного и юмористического контента на тему программирования, в частности такого языка как Python.

По всем вопросам: @andrey_andrey01
Download Telegram
🔐 Brute-force attack/переборщик паролей для PDF файлов с индикатором процесса на Python

⚙️ pip install pikepdf tqdm

#tipsandtricks
Что выведет данный код?
Anonymous Poll
0%
0
38%
3
8%
Ничего
46%
Error
8%
Узнать ответ
⚡️ Три «помощника» цикла

enumerate — функция, которая возвращает число (чаще всего это индекс) и значение в виде кортежа. Она будет полезна, если, например, нужно почитать количество строк в файле или узнать, какой индекс у элемента.

zip — функция, которая соединяет два списка в один. За один проход в цикле возвращается кортеж с значением из первого списка и второго.

reversed — также используется в цикле: переворачивает список, чтобы вы могли пройтись по нему от последнего элемента до первого, при этом ничего не изменяя. Если вам нужен именно перевёрнутый список, используйте listName.reverse().
Библиотека subprocess

Данная библиотека как ни странно, помогает работать с процессами. С ней можно, к примеру, вызвать какое-то приложение. Пусть это будет командная строка.

Кроме этого, можно проверить ответ от какого-то сайта. Делается это через расчет ping.

Про еще большее количество возможностей расскажем в следующем посте.
Находим опечатки в тексте

Полезный пакет spellchecker позволяет находить опечатки в тексте и даже дает возможные варианты исправлений.

Под капотом модуль использует алгоритм расстояния Левенштейна. А сам код основан на статье, написанной в блоге Питера Норвига. Короче, реализация интересная, советую поизучать.

Но даже если не вникать в подробности, то пакет использовать крайне легко. Примеры использования класса SpellChecker и его методов correction и candidates показаны на картинке.

Пакет поддерживает 6 языков, включая русский. Но за подробностями отправляю вас читать документацию.

#spellchecker
Что выведет код выше?
Anonymous Poll
10%
10
0%
45
80%
None
0%
Error
10%
Узнать Ответ
​​Хакер взломал мошенников, пытавшихся вымогать у него деньги. И показал им изображение с их же веб-камеры 😅

Сотрудники мошеннического колл-центра в Индии попали не на ту жертву — они связались с YouTube-блогером, построившим карьеру на «охоте» за вымогателями.

По словам блогера, он столкнулся с «примитивным» видом мошенничества: электронным письмом, сообщающим о сделанном заказе на Amazon, который пользователь точно не делал. Там же указывается номер службы возврата, который перенаправляет в индийский колл-центр. Scambaiter(Никнейм блогера) обернул схему против злоумышленников. Он вычислил IP-адрес звонивших, узнал расположение колл-центра и даже нашёл в файлах компьютера удостоверения двух сотрудников, а также документ со сценарием вымогательства денег. Так блогер вышел на страницу сотрудника колл-центра в фейсбуке, узнав подробности его жизни.

Хакер продолжил «поддаваться» мошеннику на другом конце провода, притворяясь наивной жертвой, но в то же время взломал веб-камеру компьютера злоумышленника и вывел её на свой ноутбук. Когда пришло время поделиться доступом к компьютеру, два сотрудника колл-центра увидели изображение со своей веб-камеры на экране. 🤣

Злоумышленник сразу попытался скрыться от веб-камеры, но Scambaiter начал говорить ему: «Я знаю всё о тебе, я знаю, чем ты занимаешься, я знаю про твою компанию. Я вижу вас прямо сейчас, давайте, ответьте на пару вопросов, будьте честны со мной». Но вымогатели не ответили и в какой-то момент просто сбежали позвав коллег. Те же пытались выключить веб-камеру, в то же время выслушивая шутки от Scambaiter.

Не на того напали 😎

#news
Каким будет результат выполнения кода?
Anonymous Poll
13%
Jam
13%
dno
50%
maJ
0%
dnoB semaJ
25%
Узнать ответ
Библиотека subprocess

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

К примеру если у вас сервер на линукс, о обязательно установлен python 2. Приведенный ниже код заменит интерпретатор python 2 на современную версию python 3:
'test.py'], executable='python3')

Мы можем так же сохранить весь ввод и ошибки или перенаправить их прямо в файл для сохранения. А можно заставить выполняться процесс в фоновом режиме или дождаться ее завершения. Последние две возможности можно использовать асинхронно с asyncio.

Обычно Popen не ждет завершения процесса, используйте wait, чтобы избежать этого.
⚡️ Асинхронное программирование

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

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

Для примера — пока вы ждёте приготовление торта (ожидание ответа от сервера) вы можете расставить тарелки (подготовка данных).

Самая популярная библиотека для данных задач — asyncio. Скачать её можно по следующей команде:

pip install asyncio