Пакетов для 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.
Uuid
Наверняка вам приходилось генерировать для пользователей ID, или рассылать покупателям промокоды, или делать ещё что-то, где нужно создать уникальные последовательности. UUID вам в этом поможет:
import uuid print uuid.uuid4() # e7bafa3d-274e-4b0a-b9cc-d898957b4b61
И если вы переживаете, что ID кончатся, то не стоит: их количество сравнимо с количеством атомов во вселенной.
Источник: blog.yhat.com