Модули Python
По возможности, если совсем "не влом", лучше использовать стандартные. Сторонние как правило являются "обертками", упрощающие написание кода. Недостатки таких модулей является то, что их надо устанавливать отдельно и то, что в них могут быть уязвимости.
Ниже перечислю модули, пакеты, которые я так или иначе использовал. Дабы не потерять их из памяти.
Основные
Универсальные модули, пакеты используемые в коде python
парсинг html страниц
автоматизация действий в браузере.
- selenium - пока базовый.
работа с
.env
переменными окружениями.- dotenv | decouple - оба испозуются в равной степени.
http запросы
- requests - без комментариев
- requests-html - модуль
requests
с поддержкойJavaScript
. doc-eng - aiohttp, docs.aiohttp.org - для асинхронных запросов
- nest_asyncio - решает проблему асинхронных запросов в
Google Colab
транситерация текста
- transliterate - транслитератор текста заточенный под славянские языки, русс док
- unidecode Не использовал - принимает строки в Юникоде и пытается представить их в символах ASCII. русс док.
Асинхронность
- aiofiles - Асинхронный доступ к файловой системе.
Видео
- ffmpeg-python - Обертка Python для FFmpeg — с поддержкой сложной фильтрации
Пакеты
Специализированные пакеты, выполняющие как правило одну функцию. Полезно для изучения. Перенять практику.
- habr-scraper - Парсер страниц хабра.
- понравилась структура организации кода.
Модуль timeit
Модуль timeit
предоставляет простой способ измерения времени выполнения (производительности) маленьких кусочков кода Python.
Он имеет как интерфейс командной строки, так и программный интерфейс. Это позволяет избежать ряда распространенных ловушек для измерения времени выполнения.
Пример timeit
def f(x):
return x**2
def g(x):
return x**4
def h(x):
return x**8
import timeit
# множественный вызов функций
print(timeit.timeit('[func(42) for func in (f,g,h)]', globals=globals()))
# вариант одиночного вызова функции f
print(timeit.timeit('f(42)', globals=globals()))