Как использовать модуль Pretty Print в Python

Персонализированный диспетчер задач на Python Программирование и разработка

В этой статье будет рассмотрено руководство по использованию модуля «Pretty Print» и его доступных методов в Python. Этот модуль, также называемый pprint, доступен в стандартной библиотеке Python. Все примеры кода в этой статье протестированы с Python 3.9.5 в Ubuntu 21.04.

О Pprint

Модуль Pprint можно использовать для улучшения внешнего вида и форматирования стандартного вывода, напечатанного с использованием Python в терминале. Форматируя вывод, вы можете улучшить его читаемость и даже экспортировать его во внешний файл, чтобы сохранить более структурированный вывод. Использование модуля pprint можно лучше всего понять на примерах, некоторые из которых перечислены ниже.

Базовый синтаксис метода Pprint

Взгляните на пример кода ниже:

from pprint import pprint

= {«a»1, «b»2, «c»3, «d»4}
print(d)
pprint(d)

В приведенном выше примере показано использование методов печати и pprint. Первая строка импортирует метод pprint из модуля pprint. Переменная «d» — это объект типа словаря с парами «ключ-значение». Затем вызывается метод pprint, и объект, который нужно напечатать, передается ему в качестве аргумента (в данном случае словарь Python).

После выполнения приведенного выше примера кода вы должны получить следующий результат:

{‘a’1, ‘b’2, ‘c’3, ‘d’4}
{‘a’1, ‘b’2, ‘c’3, ‘d’4}

Оба метода print и pprint дают одинаковый результат, поскольку к нему еще не применено форматирование. В следующих примерах будет показано применение форматирования к выходным данным.

Преобразование однострочного вывода в многострочный вывод с помощью Pprint

Чтобы преобразовать однострочный вывод в многострочный, вам нужно будет указать переменную «width» в качестве аргумента метода pprint. Взгляните на пример кода ниже:

from pprint import pprint

= {«a»1, «b»2, «c»3, «d»4}
pprint(d, width=1)

Пример кода такой же, как и в примере, показанном выше, с новым аргументом, называемым «ширина», имеющим значение 1. Значение ширины может использоваться для указания максимального количества символов, разрешенных в одной строке. По умолчанию это значение равно 80. Если вложенные объекты / элементы объекта превышают ограничения ширины, они перемещаются на новую строку. Поскольку существует ограничение всего в 1 символ, каждый элемент будет перемещен в новую строку с использованием наилучшего подхода, определенного Python для печатаемого объекта. Такой подход гарантирует, что каждый элемент имеет полную строку, чтобы он был читаемым, а не разбивался или не усекался на частичные слова.

Читайте также:  Конструктор копирования в C++ с примерами

После выполнения приведенного выше примера кода вы должны получить следующий результат:

 {‘a’1,
‘b’2,
‘c’3,
‘d’4}

Добавление отступов к многострочному выводу с помощью Pprint

Если у вас есть многострочная строка или вы разбили однострочный вывод на многострочный, используя метод, описанный выше, вы можете использовать аргумент «indent», чтобы добавить интервал перед каждым объектом вывода. Взгляните на пример кода ниже:

rom pprint import pprint

= {«a»1, «b»2, «c»3, «d»4}
pprint(d, width=1, indent=4)

Пример кода такой же, как и в примере, описанном выше. Однако был добавлен новый аргумент под названием «отступ» со значением 4. Это добавит отступ, равный 4 пробелам, перед каждым объектом.

После выполнения приведенного выше примера кода вы должны получить следующий результат:

{   ‘a’1,
‘b’2,
‘c’3,
‘d’4}

Обратите внимание, что аргумент «отступ» не влияет на однострочные выходы.

Ограничение вывода на печать до определенных уровней

Если печатаемый вами объект содержит вложенные объекты, вы можете использовать аргумент «глубина», чтобы ограничить вывод определенными уровнями. Взгляните на пример кода ниже:

from pprint import pprint

= {«a»1, «b»2, «c»3, «d»[4, 5]}
pprint(d, depth=1)

В приведенном выше примере данные печатаются до уровня глубины 1. Другими словами, печатаются только объекты, не содержащие других вложенных объектов. Список «[4, 5]» имеет уровень глубины 2 и не печатается. Чтобы указать, что он скрыт, используются три точки или эллипсы.

После выполнения приведенного выше примера кода вы должны получить следующий результат:

{‘a’1, ‘b’2, ‘c’3, ‘d’[]}

Вот еще один пример использования глубины в 2 уровня. Первый вложенный элемент появляется на выходе, а второй — нет.

from pprint import pprint

= {«a»1, «b»2, «c»3, «d»[4, [5, 6]]}
pprint(d, depth=2)

После выполнения приведенного выше примера кода вы должны получить следующий результат:

{‘a’1, ‘b’2, ‘c’3, ‘d’[4, []]}

Получение красивого печатного вывода в качестве возвращаемого значения

Если вы хотите использовать красиво напечатанный вывод в других функциях Python или назначить его переменной, вы можете использовать метод «pformat». Он идентичен методу pprint, за исключением того, что он ничего не печатает, а возвращает отформатированную строку. Взгляните на пример кода ниже:

from pprint import pformat

= {«a»1, «b»2, «c»3, «d»[4, [5, 6]]}
pretty = pformat(d, depth=2)
print (pretty)

Вместо pprint теперь pformat был импортирован из модуля pprint. Переменная «pretty» хранит отформатированную строку, чтобы ее можно было использовать позже в коде. Последний оператор печатает вывод красивой переменной.

После выполнения приведенного выше примера кода вы должны получить следующий результат:

{‘a’1, ‘b’2, ‘c’3, ‘d’[4, []]}

Использование модуля Json для красивой печати словаря Python

Если вы хотите распечатать словарь Python в JSON-подобной структуре с хорошим отступом, модуля pprint может быть недостаточно. В таком случае метод «дампов» из модуля json дает гораздо лучший результат. Взгляните на пример кода ниже:

from pprint import pprint
from json import dumps

= {«a»1, «b»2, «c»3, «d»4}
pprint (d, width=1, indent=4)
print (dumps(d, indent=4))

В дополнение к методу pprint в образец кода теперь импортирован метод «dumps» из модуля json. В метод дампа передан аргумент, называемый «отступ» со значением 4.

После выполнения приведенного выше примера кода вы должны получить следующий результат:

{   ‘a’1,
‘b’2,
‘c’3,
‘d’4}
{
«a»1,
«b»2,
«c»3,
«d»4
}

Как видно из выходных данных, метод dumps создает лучше отформатированный словарь Python.

Заключение

Модуль pretty print или pprint можно использовать для создания хорошо отформатированного вывода в Python. Стандартный вывод многих объектов Python может быть не совсем читаемым, особенно когда данные большие и содержат много вложенных объектов. В таких случаях вы можете использовать pprint для улучшения читаемости и форматирования вывода.

Оцените статью
bestprogrammer.ru
Добавить комментарий