[Python] 14 Python-пакетов, про которые вы скорее всего не знали
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Язык Python предоставляет всем пользователям возможность создавать свои пакеты и делиться ими со всем сообществом. Так появлялись очень популярные библиотеки для работы с данными (Pandas, Numpy, Matplotlib), для машинного обучения (TensorFlow, PyTorch), для веб разработки. Но есть много смешных, полезных или интересных пакетов, про которые вы вероятно никогда не слышали. Именно про них и пойдёт речь дальше.
Модули, которые не являются частью стандартной библиотеки Python, можно установить с помощью pip install <название пакета>.
Antigravity
built-in: True
При подключении модуля antigravity в браузере открывается комикс с сайта xkcd.com (xkcd.ru — версия на русском). В нём рассказывается про то, насколько язык Python простой. Перевод с английского языка:
Приписка автора комикса: I wrote 20 short programs in Python yesterday. It was wonderful. Perl, I'm leaving you.
tqdm
built-in: False
Отличный инструмент для подключения диаграммы выполнения вашей программы. Название происходит от арабского слова "taqadum", что означает "прогресс".
Для создания прогресс-бара необходим лишь один вызов функции:
import tqdm
for i in tqdm(range(10000)):
...
Пример прогресс-бара:
В реальном времени показывается процент выполнения, визуальное представление, сколько итераций завершилось, скорость выполнения и ожидаемое время окончания. Также модуль не требует никаких внешних библиотек.
prettytable
built-in: False
Пакет для красивого оформления и вывода таблиц. Есть поддержка заголовков столбцов, импорт из CSV и SQL. Синтаксис опять же очень простой:
from prettytable import PrettyTable
x = PrettyTable()
x.field_names = ["Country", "Capital", "is_russia"]
x.add_row(["Russia", "Moscow", True])
x.add_rows([["Argentina", "Buenos Aires", False], ["Jamaica", "Kingston", False]])
x.add_column("Starts with A", [False, True, False])
print(x)
Вывод:
+-----------+--------------+-----------+---------------+
| Country | Capital | is_russia | Starts with A |
+-----------+--------------+-----------+---------------+
| Russia | Moscow | True | False |
| Argentina | Buenos Aires | False | True |
| Jamaica | Kingston | False | False |
+-----------+--------------+-----------+---------------+
Подробнее можно почитать на странице проекта.
emoji
built-in: False
Модуль позволяет получить эмодзи по его текстовому названию. Может быть полезно в проектах, где используются эмодзи, но не хочется хранить их как символ, потому что IDE может плохо их отображать. При этом по названию будет понятен смысл смайлика. Также при написании приложения для обмена сообщениями это будет удобной фичей для пользователей.
Есть поддержка нескольких языков и синонимов (алиасов).
import emoji
print(emoji.emojize('Habr is :thumbsup:', use_aliases=True)) # Habr is
print(emoji.demojize('Habr is ')) # Habr is :thumbsup:
print(emoji.demojize('Habr es ', language='es')) # Habr es :pulgar_hacia_arriba:
Шпаргалку по названиям эмодзи можно посмотреть здесь
uuid
built-in: True
Пакет для генерации случайных id, поддерживает разные модели генерации. Например, uuid4 генерирует рандомный id, а uuid3 на основе md5 от названия объекта, для которого генерируется id. Как всегда, подробности можно найти в документации.
import uuid
print(uuid.uuid4()) # example: 2d8959d3-a5b3-42ef-8723-b4f4532f6d14
print(uuid.uuid3(uuid.NAMESPACE_URL, "https://habr.com/ru/users/otter18/")) # e521cf18-5147-3137-9ca5-51bcbebe1b74
freegames
built-in: False
Хотите поиграть на рабочем месте, но игры слишком много весят? Или вы боитесь, что босс увидит, чем вы занимаетесь? Выход есть!
python -m pip install freegames
Теперь вы можете запустить любую игру из списка:
ant
bagels
bounce
cannon
connect
crypto
fidget
flappy
guess
life
maze
memory
minesweeper
pacman
paint
pong
simonsays
snake
tictactoe
tiles
tron
Для запуска игры snake используйте команду
python -m freegames.snake
Крестики-нолики:
Игра на запоминание чисел:
Все игры сделаны с помощью черепашки-рисовальщика.
howdoi
built-in: False
Ещё один прекрасный модуль, который улучшит вашу жизнь. Теперь вам не надо открывать несколько вопросов на StackOverflow, на которые нет понятного ответа с кодом. Вместо этого для вас решение найдёт howdoi:
$ howdoi install all python modules in project
pip install -r requirements.txt
Также есть поддержка подсветки, определённых сайтов и поисковых систем.
pyjokes
built-in: False
Если в вашей крови течёт PEP, а дома вас ждёт домашняя змея в клетке, то и шутки вам нужны соответствующие. Вы всегда можете получить их с помощью модуля pyjokes.
import pyjokes
print(pyjokes.get_joke())
Также есть отдельная категория с шутками Чака Норриса. Don't worry about tests, Chuck Norris's test cases cover your code too.
Fabulous
built-in: False
Вам не достаточно красивого вывода таблиц в консоль? А как насчёт вывода текста с тенями или даже картинок? Теперь это возможно! (Использовать только в небольших количествах во избежание перелома чувства прекрасного)
from fabulous import text, image
print(text.Text("Барсук!", color='#ff8c00', shadow=True, skew=5))
print(image.Image("барсук.png"))
art
built-in: False
Всё, что вам может понадобится для вывода красивых надписей или артов в терминал.
import art
print(art.randart()) # \m/(-_-)\m/
art.tprint("Habr", "mix") # надпись Habr буквами из разных языков и шрифтов, которые могут не читаться вашими устройствами
Мне особенно нравится вывод больших букв:
import art
print(art.text2art("Habr", font='block'))
.----------------. .----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. || .--------------. |
| | ____ ____ | || | __ | || | ______ | || | _______ | |
| | |_ || _| | || | / \ | || | |_ _ \ | || | |_ __ \ | |
| | | |__| | | || | / /\ \ | || | | |_) | | || | | |__) | | |
| | | __ | | || | / ____ \ | || | | __'. | || | | __ / | |
| | _| | | |_ | || | _/ / \ \_ | || | _| |__) | | || | _| | \ \_ | |
| | |____||____| | || ||____| |____|| || | |_______/ | || | |____| |___| | |
| | | || | | || | | || | | |
| '--------------' || '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------' '----------------'
Полный список возможностей можно увидеть в документации.
pyperclip
built-in: False
Модуль для работы с буфером обмена. Подобные возможности также есть в модуле Tkinter (и я пользовался этим способом, потому что он выдавался в Гугле первым):
from tkinter import Tk
tk = Tk()
tk.withdraw()
tk.clipboard_clear()
tk.clipboard_append('New clipboard comtent')
tk.update()
tk.destroy()
Но pyperclip делает жизнь проще:
import pyperclip
pyperclip.copy('Habr is the best!')
pyperclip.paste()
Под капотом стоит обработка версии системы и поиск соответствующего способа работы с буфером обмена. Например, с помощью командной строки.
hello
built-in: True
Все же помнят свой первый вывод Hello World!? Теперь это сделать ещё легче, надо просто написать в консоли import __hello__.
moviepy
built-in: False
Пакет для редактирования видео. Имеет такие полезные функции как: обрезка, добавления текста поверх ихображения, поворот видео, создания GIF, коррекция цвета и много другое.
Одним словом, если вы хотите автоматизировать простую работу над видео, то это прекрасный инструмент для ваших целей.
Пример из официальной документации: наложение двух видеофайлов и движущегося текста
from moviepy.editor import *
# импорт основного видеоряда
ukulele = VideoFileClip("ukulele.MOV", audio=False).subclip(60+33, 60+50).crop(486, 180, 1196, 570)
w,h = moviesize = ukulele.size
# импорт пианино
piano = (VideoFileClip("piano.mp4",audio=False).subclip(30,50).resize((w/3,h/3)).margin( 6,color=(255,255,255).margin( bottom=20, right=20, opacity=0).set_pos(('right','bottom')) )
# создание текста
txt = TextClip("V. Zulkoninov - Ukulele Sonata", font='Amiri-regular', color='white',fontsize=24)
txt_col = txt.on_color(size=(ukulele.w + txt.w,txt.h-10), color=(0,0,0), pos=(6,'center'), col_opacity=0.6)
# создание траектории движения текста: зависимость координаты от времени
txt_mov = txt_col.set_pos(lambda t: (max(w/30,int(w-0.5*w*t)), max(5*h/6,int(100*t))))
# генерация финального результата
final = CompositeVideoClip([ukulele,txt_mov,piano])
final.subclip(0,5).write_videofile(".avi",fps=24,codec='libx264')
Результат: https://youtu.be/AqGZ4JFkQTU
please-debug-my-code
built-in: False
И завершает этот список модуль, сделанный мной. В нём живёт маленький помощник, который отдебагает вам любой код.
import please_debug_my_code
print(please_debug_my_code.please_help("code", "..."))
Только он иногда не в настроении, и его надо хорошо попросить (или прочитать исходный код и понять, что он любит).
Заключение
Библиотека pypi содежит более 307 тысяч проектов, среди которых вы можете найти подходящий пакет в любой жизненной ситуации. А если такого пакета нет, то почему бы не создать его и не поделиться им со всеми?
Облачные серверы от Маклауд прекрасно подходят для разработки на python.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
оригинал
===========
Источник:
habr.com
===========
Похожие новости:
- [Разработка веб-сайтов, JavaScript, API] Наиболее полное руководство по практическому использованию Web Speech API
- [Python, Программирование, Google App Engine] Как использовать GraphQL Federation для инкрементальной миграции с монолита (Python) на микросервисы (Go) (перевод)
- [Программирование, Разработка мобильных приложений, Тестирование мобильных приложений] Особенности тестирования Android без Google-сервисов
- [Читальный зал] Языки «Властелина колец»: как язык создал целую вселенную
- [Карьера в IT-индустрии, Читальный зал] Dear Haters. За что хейтеры травят юзеров, и как с этим бороться
- [Python, Программирование, SQL, Микросервисы, Flask] Чтобы первый блин не вышел комом. Советы начинающему разработчику сервиса
- [Python, Разработка мобильных приложений, Разработка игр, Unity] Интеграция и серверная валидация инаппов для стора Google Play — как защититься от читеров
- [Python, Программирование] Создание функции губки из MD5 (перевод)
- [Разработка веб-сайтов, JavaScript, ReactJS] 5 приемов по разделению «бандла» и «ленивой» загрузке компонентов в React (перевод)
- [DIY или Сделай сам, Лайфхаки для гиков] Как собрать свой собственный прибор ночного видения за $50 из смартфона
Теги для поиска: #_python, #_python, #_python3, #_libraries, #_pip, #_funny, #_tools, #_blog_kompanii_maklaud (
Блог компании Маклауд
), #_python
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:05
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Язык Python предоставляет всем пользователям возможность создавать свои пакеты и делиться ими со всем сообществом. Так появлялись очень популярные библиотеки для работы с данными (Pandas, Numpy, Matplotlib), для машинного обучения (TensorFlow, PyTorch), для веб разработки. Но есть много смешных, полезных или интересных пакетов, про которые вы вероятно никогда не слышали. Именно про них и пойдёт речь дальше. Модули, которые не являются частью стандартной библиотеки Python, можно установить с помощью pip install <название пакета>. Antigravity built-in: True При подключении модуля antigravity в браузере открывается комикс с сайта xkcd.com (xkcd.ru — версия на русском). В нём рассказывается про то, насколько язык Python простой. Перевод с английского языка: Приписка автора комикса: I wrote 20 short programs in Python yesterday. It was wonderful. Perl, I'm leaving you. tqdm built-in: False Отличный инструмент для подключения диаграммы выполнения вашей программы. Название происходит от арабского слова "taqadum", что означает "прогресс". Для создания прогресс-бара необходим лишь один вызов функции: import tqdm
for i in tqdm(range(10000)): ... Пример прогресс-бара: В реальном времени показывается процент выполнения, визуальное представление, сколько итераций завершилось, скорость выполнения и ожидаемое время окончания. Также модуль не требует никаких внешних библиотек. prettytable built-in: False Пакет для красивого оформления и вывода таблиц. Есть поддержка заголовков столбцов, импорт из CSV и SQL. Синтаксис опять же очень простой: from prettytable import PrettyTable
x = PrettyTable() x.field_names = ["Country", "Capital", "is_russia"] x.add_row(["Russia", "Moscow", True]) x.add_rows([["Argentina", "Buenos Aires", False], ["Jamaica", "Kingston", False]]) x.add_column("Starts with A", [False, True, False]) print(x) Вывод: +-----------+--------------+-----------+---------------+
| Country | Capital | is_russia | Starts with A | +-----------+--------------+-----------+---------------+ | Russia | Moscow | True | False | | Argentina | Buenos Aires | False | True | | Jamaica | Kingston | False | False | +-----------+--------------+-----------+---------------+ Подробнее можно почитать на странице проекта. emoji built-in: False Модуль позволяет получить эмодзи по его текстовому названию. Может быть полезно в проектах, где используются эмодзи, но не хочется хранить их как символ, потому что IDE может плохо их отображать. При этом по названию будет понятен смысл смайлика. Также при написании приложения для обмена сообщениями это будет удобной фичей для пользователей. Есть поддержка нескольких языков и синонимов (алиасов). import emoji
print(emoji.emojize('Habr is :thumbsup:', use_aliases=True)) # Habr is print(emoji.demojize('Habr is ')) # Habr is :thumbsup: print(emoji.demojize('Habr es ', language='es')) # Habr es :pulgar_hacia_arriba: Шпаргалку по названиям эмодзи можно посмотреть здесь uuid built-in: True Пакет для генерации случайных id, поддерживает разные модели генерации. Например, uuid4 генерирует рандомный id, а uuid3 на основе md5 от названия объекта, для которого генерируется id. Как всегда, подробности можно найти в документации. import uuid
print(uuid.uuid4()) # example: 2d8959d3-a5b3-42ef-8723-b4f4532f6d14 print(uuid.uuid3(uuid.NAMESPACE_URL, "https://habr.com/ru/users/otter18/")) # e521cf18-5147-3137-9ca5-51bcbebe1b74 freegames built-in: False Хотите поиграть на рабочем месте, но игры слишком много весят? Или вы боитесь, что босс увидит, чем вы занимаетесь? Выход есть! python -m pip install freegames
Теперь вы можете запустить любую игру из списка: ant
bagels bounce cannon connect crypto fidget flappy guess life maze memory minesweeper pacman paint pong simonsays snake tictactoe tiles tron Для запуска игры snake используйте команду python -m freegames.snake
Крестики-нолики: Игра на запоминание чисел: Все игры сделаны с помощью черепашки-рисовальщика. howdoi built-in: False Ещё один прекрасный модуль, который улучшит вашу жизнь. Теперь вам не надо открывать несколько вопросов на StackOverflow, на которые нет понятного ответа с кодом. Вместо этого для вас решение найдёт howdoi: $ howdoi install all python modules in project
pip install -r requirements.txt Также есть поддержка подсветки, определённых сайтов и поисковых систем. pyjokes built-in: False Если в вашей крови течёт PEP, а дома вас ждёт домашняя змея в клетке, то и шутки вам нужны соответствующие. Вы всегда можете получить их с помощью модуля pyjokes. import pyjokes
print(pyjokes.get_joke()) Также есть отдельная категория с шутками Чака Норриса. Don't worry about tests, Chuck Norris's test cases cover your code too. Fabulous built-in: False Вам не достаточно красивого вывода таблиц в консоль? А как насчёт вывода текста с тенями или даже картинок? Теперь это возможно! (Использовать только в небольших количествах во избежание перелома чувства прекрасного) from fabulous import text, image
print(text.Text("Барсук!", color='#ff8c00', shadow=True, skew=5)) print(image.Image("барсук.png")) art built-in: False Всё, что вам может понадобится для вывода красивых надписей или артов в терминал. import art
print(art.randart()) # \m/(-_-)\m/ art.tprint("Habr", "mix") # надпись Habr буквами из разных языков и шрифтов, которые могут не читаться вашими устройствами Мне особенно нравится вывод больших букв: import art
print(art.text2art("Habr", font='block')) .----------------. .----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. || .--------------. | | | ____ ____ | || | __ | || | ______ | || | _______ | | | | |_ || _| | || | / \ | || | |_ _ \ | || | |_ __ \ | | | | | |__| | | || | / /\ \ | || | | |_) | | || | | |__) | | | | | | __ | | || | / ____ \ | || | | __'. | || | | __ / | | | | _| | | |_ | || | _/ / \ \_ | || | _| |__) | | || | _| | \ \_ | | | | |____||____| | || ||____| |____|| || | |_______/ | || | |____| |___| | | | | | || | | || | | || | | | | '--------------' || '--------------' || '--------------' || '--------------' | '----------------' '----------------' '----------------' '----------------' Полный список возможностей можно увидеть в документации. pyperclip built-in: False Модуль для работы с буфером обмена. Подобные возможности также есть в модуле Tkinter (и я пользовался этим способом, потому что он выдавался в Гугле первым): from tkinter import Tk
tk = Tk() tk.withdraw() tk.clipboard_clear() tk.clipboard_append('New clipboard comtent') tk.update() tk.destroy() Но pyperclip делает жизнь проще: import pyperclip
pyperclip.copy('Habr is the best!') pyperclip.paste() Под капотом стоит обработка версии системы и поиск соответствующего способа работы с буфером обмена. Например, с помощью командной строки. hello built-in: True Все же помнят свой первый вывод Hello World!? Теперь это сделать ещё легче, надо просто написать в консоли import __hello__. moviepy built-in: False Пакет для редактирования видео. Имеет такие полезные функции как: обрезка, добавления текста поверх ихображения, поворот видео, создания GIF, коррекция цвета и много другое. Одним словом, если вы хотите автоматизировать простую работу над видео, то это прекрасный инструмент для ваших целей. Пример из официальной документации: наложение двух видеофайлов и движущегося текста from moviepy.editor import *
# импорт основного видеоряда ukulele = VideoFileClip("ukulele.MOV", audio=False).subclip(60+33, 60+50).crop(486, 180, 1196, 570) w,h = moviesize = ukulele.size # импорт пианино piano = (VideoFileClip("piano.mp4",audio=False).subclip(30,50).resize((w/3,h/3)).margin( 6,color=(255,255,255).margin( bottom=20, right=20, opacity=0).set_pos(('right','bottom')) ) # создание текста txt = TextClip("V. Zulkoninov - Ukulele Sonata", font='Amiri-regular', color='white',fontsize=24) txt_col = txt.on_color(size=(ukulele.w + txt.w,txt.h-10), color=(0,0,0), pos=(6,'center'), col_opacity=0.6) # создание траектории движения текста: зависимость координаты от времени txt_mov = txt_col.set_pos(lambda t: (max(w/30,int(w-0.5*w*t)), max(5*h/6,int(100*t)))) # генерация финального результата final = CompositeVideoClip([ukulele,txt_mov,piano]) final.subclip(0,5).write_videofile(".avi",fps=24,codec='libx264') Результат: https://youtu.be/AqGZ4JFkQTU please-debug-my-code built-in: False И завершает этот список модуль, сделанный мной. В нём живёт маленький помощник, который отдебагает вам любой код. import please_debug_my_code
print(please_debug_my_code.please_help("code", "...")) Только он иногда не в настроении, и его надо хорошо попросить (или прочитать исходный код и понять, что он любит). Заключение Библиотека pypi содежит более 307 тысяч проектов, среди которых вы можете найти подходящий пакет в любой жизненной ситуации. А если такого пакета нет, то почему бы не создать его и не поделиться им со всеми? Облачные серверы от Маклауд прекрасно подходят для разработки на python. Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации! оригинал =========== Источник: habr.com =========== Похожие новости:
Блог компании Маклауд ), #_python |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:05
Часовой пояс: UTC + 5