import pprint pp = pprint.PrettyPrinter(indent=1, width=80, depth=None, stream=None, *, compact=False, sort_dicts=True)
indent=1
- отступ последующего уровня вложенности,width=80
- ширина экрана печати,depth=None
- показывать уровней вложенности,stream=None
- поток форматированного вывода,compact=False
- компактное форматирование,sort_dicts=True
- сортировка словаря перед форматированием,PrettyPrinter
(см. пример использования)Класс PrettyPrinter()
модуля pprint
создает объект PrettyPrinter
и принимает ключевые параметры, отвечающие за красивое форматирование и выходной поток.
Выходной поток может быть установлен с использованием ключевого слова stream
. Единственный метод, используемый объектом stream
, это метод протокола файла file.write()
. Если аргумент stream
не указан, то класс pprint.PrettyPrinter
по умолчанию принимает sys.stdout
.
Количество отступов, добавляемых для каждого рекурсивного уровня, определяется аргументом indent
. По умолчанию indent=1
. Другие значения могут привести к тому, что вывод будет выглядеть немного странно, но может упростить обнаружение вложения.
Количество уровней, которые могут быть напечатаны, контролируется глубиной depth
. Если печатаемая структура данных слишком глубока, следующий вложенный уровень заменяется на '...'
. По умолчанию нет ограничений на глубину вложенности.
Желаемая ширина вывода ограничена с помощью параметра ширины width
. По умолчанию width=80
символов. Если структура не может быть отформатирована в пределах ограниченной ширины, будут приложены все усилия.
Если аргумент compact=False
(по умолчанию), каждый элемент длинной последовательности будет отформатирован в отдельной строке. Если compact=True
, то в каждой строке будет отформатировано столько элементов, сколько уместится в ширину.
Если sort_dicts=True
(по умолчанию), то словари будут отформатированы с отсортированными ключами, в противном случае они будут отображаться в порядке вставки.
>>> import pprint >>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni'] >>> pp = pprint.PrettyPrinter(indent=4, width=40) >>> pp.pprint(stuff) # [ 'spam', # 'eggs', # 'lumberjack', # 'knights', # 'ni'] >>> stuff.insert(0, stuff[:]) >>> pp.pprint(stuff) # [ [ 'spam', # 'eggs', # 'lumberjack', # 'knights', # 'ni'], # 'spam', # 'eggs', # 'lumberjack', # 'knights', # 'ni'] >>> pp = pprint.PrettyPrinter(width=40, compact=True) >>> pp.pprint(stuff) # [['spam', 'eggs', 'lumberjack', # 'knights', 'ni'], # 'spam', 'eggs', 'lumberjack', # 'knights', 'ni'] >>> tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', ... ('parrot', ('fresh fruit',)))))))) >>> pp = pprint.PrettyPrinter(depth=6) >>> pp.pprint(tup) # ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', (...)))))))