pprint — 데이터 예쁘게 출력

pprint — 데이터 예쁘게 출력 (Data pretty printer)

pprint 모듈은 임의의 파이썬 데이터 구조를 인터프리터의 입력으로 사용할 수 있는 형태로 "예쁘게 출력(pretty-print)"하는 기능을 제공해요. 포맷된 구조에 파이썬 기본 타입이 아닌 객체가 포함되면 표현을 다시 로드하지 못할 수 있어요. 예를 들어 파일, 소켓, 클래스 또는 파이썬 리터럴로 표현할 수 없는 많은 객체가 포함된 경우가 그래요.

출처: Python documentation

본문

포맷된 표현은 객체를 한 줄에 둘 수 있으면 한 줄에 두고, 허용 너비(기본 80자, width 매개변수로 조정)에 맞지 않으면 여러 줄로 나눠요.

버전 3.9에서 types.SimpleNamespace, 버전 3.10에서 dataclasses.dataclass 의 예쁜 출력 지원이 추가됐어요.

함수 (Functions)

  • *pprint.pp(object, stream=None, indent=1, width=80, depth=None, , compact=False, sort_dicts=False, underscore_numbers=False) — 객체의 포맷된 표현을 개행과 함께 출력해요. 대화형 인터프리터에서 값을 검사할 때 print() 대신 쓸 수 있어요. 팁: 특정 스코프 안에서 print = pprint.pp 로 재할당할 수 있어요.

    • object — 출력할 객체.
    • stream (파일류 객체 | None) — write() 메서드를 호출해 출력할 파일류 객체. None(기본)이면 sys.stdout 을 사용해요.
    • indent (int) — 각 중첩 레벨에 추가되는 들여쓰기 양.
    • width (int) — 출력의 한 줄당 원하는 최대 문자 수. 너비 제약 안에서 포맷할 수 없으면 최선을 다해 시도해요.
    • depth (int | None) — 인쇄할 수 있는 중첩 레벨 수. 구조가 너무 깊으면 다음 포함 레벨이 ... 로 대체돼요. None(기본)이면 깊이 제약이 없어요.
    • compact (bool) — 긴 시퀀스의 포맷 방식을 제어해요. False(기본)면 각 항목을 별도 줄에, true 면 너비 안에 들어가는 만큼 각 출력 줄에 포맷해요.
    • sort_dicts (bool) — True 면 딕셔너리를 키 정렬로, 아니면 삽입 순서(기본)로 표시해요.
    • underscore_numbers (bool) — True 면 정수를 _ 문자로 천 단위 구분해 포맷하고, 아니면 표시하지 않아요(기본).

    버전 3.8에서 추가됐어요.

>>> import pprint
>>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
>>> stuff.insert(0, stuff)
>>> pprint.pp(stuff)
[<Recursion on list with id=...>,
 'spam',
 'eggs',
 'lumberjack',
 'knights',
 'ni']
  • *pprint.pprint(object, stream=None, indent=1, width=80, depth=None, , compact=False, sort_dicts=True, underscore_numbers=False)pp() 와 유사하지만 기본 sort_dicts=True 로 딕셔너리 키를 정렬해 출력해요. 복잡하게 중첩된 리스트·딕셔너리를 읽기 좋게 보여줄 때 유용해요.

더 알아보기 (Learn more)