10 полезных Python библиотек, о которых вы не слышали

Отредактировано

99К открытий100К показов

Пакетов для Python создано уже очень много, поэтому ни один человек физически не может изучить их все. Только PyPi насчитывает 47 000 пакетов. В то время как pandas, scikit-learn или numpy у многих на слуху, про перечисленные здесь — уже достаточно старые, но всё ещё полезные — библиотеки часто забывают.

Delorean

Это — отличная библиотека для работы с датами и временем. Работа с временем с помощью неё в Python мне кажется наиболее естественной. Delorean чем-то похожа на Moment.js. Так же стоит отметить отличную документацию и бесчисленное количество отсылок к “Назад в будущее”.

			from delorean import Delorean
EST = "US/Eastern"
d = Delorean(timezone=EST)
		

Prettytable

Я почти уверен, что про эту библиотеку вы не слышали, ведь она выложена на GoogleCode, который в мире кода является точным аналогом Сибири.

Несмотря на то, что она была сослана в это холодное, заснеженное и пустынное место, Prettytable остаётся отличной библиотекой для формирования красивого вывода в терминал:

			from prettytable import PrettyTable
table = PrettyTable(["животное", "свирепость"])
table.add_row(["Оборотень", 100])
table.add_row(["Гризли", 87])
table.add_row(["Кролик из Кэрбенног", 110])
table.add_row(["Кот", -1])
table.add_row(["Утконос", 23])
table.add_row(["Дельфин", 63])
table.add_row(["Альбатрос", 44])
table.sort_key("свирепость")
table.reversesort = True
+----------------------+------------+
|       животное       | свирепость |
+----------------------+------------+
| Кролик из Кэрбенног |   110      |
|      Оборотень       |   100      |
|        Гризли        |    87      |
|       Дельфин        |    63      |
|       Альбатрос      |    44      |
|        Утконос       |    23      |
|         Кот          |    -1      |
+----------------------+------------+
		

Snowballstemmer

Ладно, признаюсь, первый раз я установил snowballstemmer из-за крутого названия. Но оказалось, что это действительно очень удобная маленькая библиотечка. Она содержит алгоритмы стемминга для 15 языков (включая русский).

			from snowballstemmer import EnglishStemmer, SpanishStemmer
EnglishStemmer().stemWord("Gregory")
# Gregori
SpanishStemmer().stemWord("amarillo")
# amarill
		

Wget

Наверняка вам не раз приходилось писать методы для какой-то специфической работы с вебом. Но я вас огорчу — вы делали это зря. Ведь уже есть wget. Рекурсивно скачать сайт? Забрать со страницы все изображения? Для wget это не проблема.

			import wget
wget.download("http://www.cnn.com/")
# 100% [............................................................................] 280385 / 280385
		

PyMC

А эта библиотека предназначена для Байесовского анализа. По непонятным причинам эта библиотека используется гораздо реже, чем scikit-learn, а ведь очень зря.

			from pymc.examples import disaster_model
from pymc import MCMC
M = MCMC(disaster_model)
M.sample(iter=10000, burn=1000, thin=10)
[-----------------100%-----------------] 10000 of 10000 complete in 1.4 sec
		

Sh

Я не могу себе позволить, чтобы вы ушли с этой страницы, не зная о sh. Как можно догадаться, sh импортирует в Python команды shell в виде функций. Это — суперудобная возможность, когда вы помните, как сделать что-то с помощью bash, но не помните, как это реализуется на Python (например, рекурсивный поиск по файлам).

			from sh import find
find("/tmp")
/tmp/foo
/tmp/foo/file1.json
/tmp/foo/file2.json
/tmp/foo/file3.json
/tmp/foo/bar/file3.json
		

Fuzzywuzzy

Эта библиотека добавляет классных фич для сравнения данных. Может быть использована для связи записей в различных базах данных.

			from fuzzywuzzy import fuzz
fuzz.ratio("Hit me with your best shot", "Hit me with your pet shark")
# 85
		

Progressbar

Да, да, эта библиотека делает именно то, о чём вы подумали — выводит прогрессбар.

			from progressbar import ProgressBar
import time
pbar = ProgressBar(maxval=10)
for i in range(1, 11):
    pbar.update(i)
    time.sleep(1)
pbar.finish()
# 60% |########################################################                                      |
		

Colorama

Если уж вы занимаетесь добавление прогрессбаров в свои программы, то, может, стоит добавить ещё немного цвета? Справиться с этим вам поможет Colorama.

10 полезных Python библиотек, о которых вы не слышали 2

Uuid

Наверняка вам приходилось генерировать для пользователей ID, или рассылать покупателям промокоды, или делать ещё что-то, где нужно создать уникальные последовательности. UUID вам в этом поможет:

			import uuid
print uuid.uuid4()
# e7bafa3d-274e-4b0a-b9cc-d898957b4b61
		

И если вы переживаете, что ID кончатся, то не стоит: их количество сравнимо с количеством атомов во вселенной.

Следите за новыми постами
Следите за новыми постами по любимым темам
99К открытий100К показов