Кодировщики и декодировщики
Класс json.JSONDecoder(object_hook=None, parse_float=None, parse_int=None, parse_constant=None, strict=True, object_pairs_hook=None) - простой декодер JSON. Выполняет следующие преобразования при декодировании:
Он также понимает NaN, Infinity, и -Infinity как соответствующие значения float, которые находятся за пределами спецификации JSON. Класс json.JSONEncoder(skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None) Расширяемый кодировщик JSON для структур данных Python. Поддерживает следующие объекты и типы данных по умолчанию:
Модуль calendar Модуль calendar позволяет напечатать себе календарик (а также содержит некоторые другие полезные функции для работы с календарями). calendar.Calendar(firstweekday=0) - класс календаря. firstweekday - первый день недели (0 - понедельник, 6 - воскресенье). Методы: iterweekdays() - итератор дней недели, начиная с firstweekday. itermonthdates(year, month) - итератор для месяца month года year. Возвращает все дни этого месяца (как объекты datetime.date), а также дни до и после этого месяца до полной недели. itermonthdays2(year, month) - как itermonthdates, только дни возвращаются не как datetime.date объекты, а кортежи (номер дня, номер дня недели). itermonthdays(year, month) - как itermonthdates, только дни возвращаются не как datetime.date объекты, а номера дней. monthdatescalendar(year, month) - список недель в месяце. Неделя - список из 7 объектов datetime.date. monthdays2calendar(year, month) - как monthdatescalendar, но объекты - кортежи (номер дня, номер дня недели). monthdayscalendar(year, month) - как monthdatescalendar, но объекты - номера дней. calendar.TextCalendar(firstweekday=0) - класс для генерации текстового календаря. Методы: formatmonth(theyear, themonth, w=0, l=0) - возвращает календарь на месяц в виде строки, с шириной колонки w и высотой l. prmonth(theyear, themonth, w=0, l=0) - печатает календарь на месяц. formatyear(theyear, w=2, l=1, c=6, m=3) - возвращает календарь на год; из m колонок, шириной даты w, высотой недели l и количеством пробелов между месяцами c. pryear(theyear, w=2, l=1, c=6, m=3) - печатает календарь на год. calendar.HTMLCalendar(firstweekday=0) - класс для генерации HTML календаря.
Методы: formatmonth(theyear, themonth, withyear=True) - календарь на месяц в виде HTML таблицы. Если withyear True, номер года будет включен в заголовок. formatyear(theyear, width=3) - календарь на год в виде HTML таблицы. width - количество месяцев в ряду. formatyearpage(theyear, width=3, css="calendar.css", encoding=None) - календарь на год в виде полноценной HTML страницы, с подключением файла css (который вы можете создать сами), и в кодировке encoding. calendar.LocaleTextCalendar(firstweekday=0, locale=None) - позволяет создать текстовый календарь с названиями на родном языке. calendar.LocaleHTMLCalendar(firstweekday=0, locale=None) - позволяет создать HTML календарь с названиями на родном языке. Например, вот такой календарик получился у меня: import calendara = calendar.LocaleHTMLCalendar(locale='Russian_Russia')with open('calendar.html', 'w') as g: print(a.formatyear(2014, width=4), file=g)
Также модуль calendar предоставляет несколько полезных функций: calendar.setfirstweekday(weekday) - устанавливает первый день недели (0 - понедельник, 6 - воскресенье). Также предоставлены значения calendar.MONDAY, calendar.TUESDAY, calendar.WEDNESDAY, calendar.THURSDAY, calendar.FRIDAY, calendar.SATURDAY и calendar.SUNDAY. calendar.firstweekday() - возвращает первый день недели. calendar.isleap(year) - является ли год високосным. calendar.leapdays(y1, y2) - количество високосных лет в последовательности от y1 до y2. calendar.weekday(year, month, day) - день недели для этой даты. calendar.monthrange(year, month) - день недели первого дня месяца и количество дней в этом месяце. Модуль os Модуль os предоставляет множество функций для работы с операционной системой, причём их поведение, как правило, не зависит от ОС, поэтому программы остаются переносимыми. Здесь будут приведены наиболее часто используемые из них. Будьте внимательны: некоторые функции из этого модуля поддерживаются не всеми ОС. os.name - имя операционной системы. Доступные варианты: 'posix', 'nt', 'mac', 'os2', 'ce', 'java'. os.environ - словарь переменных окружения. Изменяемый (можно добавлять и удалять переменные окружения). os.getlogin() - имя пользователя, вошедшего в терминал (Unix). os.getpid() - текущий id процесса. os.uname() - информация об ОС. возвращает объект с атрибутами: sysname - имя операционной системы, nodename - имя машины в сети (определяется реализацией), release - релиз, version - версия, machine - идентификатор машины. os.access(path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True) - проверка доступа к объекту у текущего пользователя. Флаги: os.F_OK - объект существует, os.R_OK - доступен на чтение, os.W_OK - доступен на запись, os.X_OK - доступен на исполнение. os.chdir(path) - смена текущей директории. os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True) - смена прав доступа к объекту (mode - восьмеричное число). os.chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True) - меняет id владельца и группы (Unix). os.getcwd() - текущая рабочая директория. os.link(src, dst, *, src_dir_fd=None, dst_dir_fd=None, follow_symlinks=True) - создаёт жёсткую ссылку. os.listdir(path=".") - список файлов и директорий в папке. os.mkdir(path, mode=0o777, *, dir_fd=None) - создаёт директорию. OSError, если директория существует. os.makedirs(path, mode=0o777, exist_ok=False) - создаёт директорию, создавая при этом промежуточные директории. os.remove(path, *, dir_fd=None) - удаляет путь к файлу. os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None) - переименовывает файл или директорию из src в dst. os.renames(old, new) - переименовывает old в new, создавая промежуточные директории. os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None) - переименовывает из src в dst с принудительной заменой. os.rmdir(path, *, dir_fd=None) - удаляет пустую директорию. os.removedirs(path) - удаляет директорию, затем пытается удалить родительские директории, и удаляет их рекурсивно, пока они пусты. os.symlink(source, link_name, target_is_directory=False, *, dir_fd=None) - создаёт символическую ссылку на объект. os.sync() - записывает все данные на диск (Unix). os.truncate(path, length) - обрезает файл до длины length. os.utime(path, times=None, *, ns=None, dir_fd=None, follow_symlinks=True) - модификация времени последнего доступа и изменения файла. Либо times - кортеж (время доступа в секундах, время изменения в секундах), либо ns - кортеж (время доступа в наносекундах, время изменения в наносекундах). os.walk(top, topdown=True, onerror=None, followlinks=False) - генерация имён файлов в дереве каталогов, сверху вниз (если topdown равен True), либо снизу вверх (если False). Для каждого каталога функция walk возвращает кортеж (путь к каталогу, список каталогов, список файлов). os.system(command) - исполняет системную команду. os.urandom(n) - n случайных байт. Возможно использование этой функции в криптографических целях. os.path - модуль, реализующий некоторые полезные функции на работы с путями. Модуль pickle Модуль pickle реализует мощный алгоритм сериализации и десериализации объектов Python. "Pickling" - процесс преобразования объекта Python в поток байтов, а "unpickling" - обратная операция, в результате которой поток байтов преобразуется обратно в Python-объект. Так как поток байтов легко можно записать в файл, модуль pickle широко применяется для сохранения и загрузки сложных объектов в Python. Не загружайте с помощью модуля pickle файлы из ненадёжных источников. Это может привести к необратимым последствиям. Модуль pickle предоставляет следующие функции для удобства сохранения/загрузки объектов: pickle.dump(obj, file, protocol=None, *, fix_imports=True) - записывает сериализованный объект в файл. Дополнительный аргумент protocol указывает используемый протокол. По умолчанию равен 3 и именно он рекомендован для использования в Python 3 (несмотря на то, что в Python 3.4 добавили протокол версии 4 с некоторыми оптимизациями). В любом случае, записывать и загружать надо с одним и тем же протоколом. pickle.dumps(obj, protocol=None, *, fix_imports=True) - возвращает сериализованный объект. Впоследствии вы его можете использовать как угодно. pickle.load(file, *, fix_imports=True, encoding="ASCII", errors="strict") - загружает объект из файла. pickle.loads(bytes_object, *, fix_imports=True, encoding="ASCII", errors="strict") - загружает объект из потока байт. Модуль pickle также определяет несколько исключений: · pickle.PickleError o pickle.PicklingError - случились проблемы с сериализацией объекта. o pickle.UnpicklingError - случились проблемы с десериализацией объекта. Этих функций вполне достаточно для сохранения и загрузки встроенных типов данных. import pickledata = { 'a': [1, 2.0, 3, 4+6j], 'b': ("character string", b"byte string"), 'c': set([None, True, False])} with open('data.pickle', 'wb') as f: pickle.dump(data, f) with open('data.pickle', 'rb') as f: data_new = pickle.load(f) print(data_new)
Модуль datetime Модуль datetime предоставляет классы для обработки времени и даты разными способами. Поддерживается и стандартный способ представления времени, однако больший упор сделан на простоту манипулирования датой, временем и их частями. Классы, предоставляемые модулем datetime: Класс datetime.date(year, month, day) - стандартная дата. Атрибуты: year, month, day. Неизменяемый объект. Класс datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None) - стандартное время, не зависит от даты. Атрибуты: hour, minute, second, microsecond, tzinfo. Класс datetime.timedelta - разница между двумя моментами времени, с точностью до микросекунд. Класс datetime.tzinfo - абстрактный базовый класс для информации о временной зоне (например, для учета часового пояса и / или летнего времени). Класс datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None) - комбинация даты и времени.
Обязательные аргументы: · datetime.MINYEAR (1) ≤ year ≤ datetime.MAXYEAR (9999) · 1 ≤ month ≤ 12 · 1 ≤ day ≤ количество дней в данном месяце и году Необязательные: · 0 ≤ minute < 60 · 0 ≤ second < 60 · 0 ≤ microsecond < 1000000 Методы класса datetime: datetime.today() - текущая дата, время равно 0. datetime.fromtimestamp(timestamp) - дата из стандартного представления времени. datetime.fromordinal(ordinal) - дата из числа, представляющего собой количество дней, прошедших с 01.01.1970. datetime.now(tz=None) - объект datetime из текущей даты и времени. datetime.combine(date, time) - объект datetime из комбинации объектов date и time. datetime.strptime(date_string, format) - преобразует строку в datetime (так же, как и функция strptime из модуля time). datetime.strftime(format) - см. функцию strftime из модуля time. datetime.date() - объект даты (с отсечением времени). datetime.time() - объект времени (с отсечением даты). datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]) - возвращает новый объект datetime с изменёнными атрибутами. datetime.timetuple() - возвращает struct_time из datetime. datetime.toordinal() - количество дней, прошедших с 01.01.1970. datetime.timestamp() - возвращает время в секундах с начала эпохи. datetime.weekday() - день недели в виде числа, понедельник - 0, воскресенье - 6. datetime.isoweekday() - день недели в виде числа, понедельник - 1, воскресенье - 7. datetime.isocalendar() - кортеж (ISO year, ISO week number, ISO weekday). datetime.isoformat(sep='T') - красивая строка вида "YYYY-MM-DDTHH:MM:SS.mmmmmm" или, если microsecond == 0, "YYYY-MM-DDTHH:MM:SS" datetime.ctime() - см. ctime() из модуля time. Пример работы с классом datetime: >>> from datetime import datetime, date, time>>> # Using datetime.combine()>>> d = date(2005, 7, 14)>>> t = time(12, 30)>>> datetime.combine(d, t)datetime.datetime(2005, 7, 14, 12, 30)>>> # Using datetime.now() or datetime.utcnow()>>> datetime.now()datetime.datetime(2007, 12, 6, 16, 29, 43, 79043) # GMT +1>>> datetime.utcnow()datetime.datetime(2007, 12, 6, 15, 29, 43, 79060)>>> # Using datetime.strptime()>>> dt = datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M")>>> dtdatetime.datetime(2006, 11, 21, 16, 30)>>> # Using datetime.timetuple() to get tuple of all attributes>>> tt = dt.timetuple()>>> for it in tt:... print(it)...2006 # year11 # month21 # day16 # hour30 # minute0 # second1 # weekday (0 = Monday)325 # number of days since 1st January-1 # dst - method tzinfo.dst() returned None>>> # Date in ISO format>>> ic = dt.isocalendar()>>> for it in ic:... print(it)...2006 # ISO year47 # ISO week2 # ISO weekday>>> # Formatting datetime>>> dt.strftime("%A, %d. %B %Y %I:%M%p")'Tuesday, 21. November 2006 04:30PM'
Модуль bisect Модуль bisect - обеспечивает поддержку списка в отсортированном порядке с помощью алгоритма деления пополам. Набор функций: bisect.insort(list, elem), он же bisect.insort_right(list, elem) - вставка элемента в отсортированный список, при этом elem располагается как можно правее (все элементы, равные ему, остаются слева). bisect.insort_left(list, elem) - вставка элемента в отсортированный список, при этом elem располагается как можно левее (все элементы, равные ему, остаются справа). bisect.bisect(list, elem), он же bisect.bisect_right(list, elem) - поиск места для вставки элемента в отсортированный список, таким образом, чтобы elem располагался как можно правее. bisect.bisect_left(list, elem) - поиск места для вставки элемента в отсортированный список, таким образом, чтобы elem располагался как можно левее. Для полного счастья не хватает только функции для проверки наличия элемента в отсортированном списке. К счастью, это легко решаемо. from bisect import bisect_left def contains(l, elem): index = bisect_left(l, elem) if index < len(l): return l[index] == elem return FalseИ пример работы: >>> contains(list(range(1000)), -10)False>>> testlist = (1, 2, 3, 6, 8, 10, 15)>>> contains(testlist, 10)True>>> contains(testlist, 0)False>>> contains(testlist, 20)False
Модуль collections Модуль collections - предоставляет специализированные типы данных, на основе словарей,кортежей, множеств, списков. Первым рассматриваемым типом данных будет Counter. Collections.Counter collections.Counter - вид словаря, который позволяет нам считать количество неизменяемых объектов (в большинстве случаев, строк). Пример: >>> import collections>>> c = collections.Counter()>>> for word in ['spam', 'egg', 'spam', 'counter', 'counter', 'counter']: c[word] += 1 >>> cCounter({'counter': 3, 'spam': 2, 'egg': 1})>>> c['counter']3>>> c['collections']0Но возможности Counter на этом не заканчиваются. У него есть несколько специальных методов: elements() - возвращает список элементов в лексикографическом порядке. >>> c = Counter(a=4, b=2, c=0, d=-2)>>> list(c.elements())['a', 'a', 'a', 'a', 'b', 'b']most_common([n]) - возвращает n наиболее часто встречающихся элементов, в порядке убывания встречаемости. Если n не указано, возвращаются все элементы. >>> Counter('abracadabra').most_common(3)[('a', 5), ('r', 2), ('b', 2)]subtract([iterable-or-mapping]) - вычитание >>> c = Counter(a=4, b=2, c=0, d=-2)>>> d = Counter(a=1, b=2, c=3, d=4)>>> c.subtract(d)Counter({'a': 3, 'b': 0, 'c': -3, 'd': -6})Наиболее часто употребляемые шаблоны для работы с Counter: · sum(c.values()) - общее количество. · c.clear() - очистить счётчик. · list(c) - список уникальных элементов. · set(c) - преобразовать в множество. · dict(c) - преобразовать в словарь. · c.most_common()[:-n:-1] - n наименее часто встречающихся элементов. · c += Counter() - удалить элементы, встречающиеся менее одного раза.
Counter также поддерживает сложение, вычитание, пересечение и объединение: >>> c = Counter(a=3, b=1)>>> d = Counter(a=1, b=2)>>> c + dCounter({'a': 4, 'b': 3})>>> c - dCounter({'a': 2})>>> c & dCounter({'a': 1, 'b': 1})>>> c | dCounter({'a': 3, 'b': 2})Следующими на очереди у нас очереди (deque) Collections.deque collections.deque(iterable, [maxlen]) - создаёт очередь из итерируемого объекта с максимальной длиной maxlen. Очереди очень похожи на списки, за исключением того, что добавлять и удалять элементы можно либо справа, либо слева. Методы, определённые в deque: append(x) - добавляет x в конец. appendleft(x) - добавляет x в начало. clear() - очищает очередь. count(x) - количество элементов, равных x. extend(iterable) - добавляет в конец все элементы iterable. extendleft(iterable) - добавляет в начало все элементы iterable (начиная с последнего элемента iterable). pop() - удаляет и возвращает последний элемент очереди. popleft() - удаляет и возвращает первый элемент очереди. remove(value) - удаляет первое вхождение value. reverse() - разворачивает очередь. rotate(n) - последовательно переносит n элементов из начала в конец (если n отрицательно, то с конца в начало).
Популярное: Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Почему стероиды повышают давление?: Основных причин три... ©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (629)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |