콘텐츠로 건너뛰기

파이썬 리치를 사용하여 어떻게 해결하나요? (How to Use/Fix Python Rich?)

[

Python Rich 패키지: 콘솔 텍스트의 힘을 발휘하다

Charles de Villiers에 의해 작성됨

Python의 Rich 패키지는 콘솔에서 아름답게 서식이 지정된 텍스트를 생성하고 강조 표시하는 데 도움이 되는 도구 모음입니다. 더욱 넓은 의미로는 매력적인 텍스트 기반 사용자 인터페이스 (TUI)를 구축할 수 있는 기능을 제공합니다.

왜 GUI (그래픽 사용자 인터페이스) 대신 TUI를 선택해야 할까요? 때로는 텍스트 디스플레이가 더 적절한 경우가 있습니다. 간단한 애플리케이션에 완전한 GUI를 사용할 필요가 없을 때, 우아한 텍스트 인터페이스만으로 충분합니다. 단순한 텍스트로 작업하는 것은 상쾌할 수 있습니다. 텍스트는 거의 모든 하드웨어 환경에서 동작하며, SSH 터미널이나 싱글 보드 컴퓨터 디스플레이에서도 작동합니다. 그리고 많은 애플리케이션은 완전한 그래픽 윈도잉 시스템의 복잡성이 필요하지 않습니다.

이 튜토리얼에서 Rich로 다음을 배우게 됩니다:

  • 명령줄 도구사용자 인터페이스를 향상시키는 방법
  • 콘솔 출력의 가독성을 개선하는 방법
  • 실시간 테이블 데이터에 대한 매력적인 대시보드 디스플레이를 작성하는 방법
  • 잘 서식이 지정된 보고서 생성하기

이 튜토리얼에서는 Rich의 많은 멋진 기능을 실험하면서 가져옵니다. 마지막으로 Rich의 기술을 사용하여 암호화폐 가격을 동적으로 스크롤하는 테이블 디스플레이를 구축하는 방법을 배우게 됩니다.

Rich 설치하기

  • Windows
  • Linux + macOS

Windows PowerShell

Terminal window
PS> pyt

리눅스 및 macOS 터미널

Terminal window
$ pyt

이러한 명령을 실행하면 Rich와 필요한 종속성이 설치됩니다.

Python 개발을 위해 Rich 사용하기

문법 강조 표시

Rich는 Python의 코드 조각을 강조 표시하는 데 사용할 수 있는 문법 강조 기능을 제공합니다. 이는 코드의 가독성을 높이고 디버깅을 도와줍니다. 예를 들어, 다음은 Rich를 사용하여 강조 표시된 Python 코드 조각을 생성하는 예입니다:

from rich.syntax import Syntax
code = "print('Hello, Rich!')"
syntax = Syntax(code, "python", theme="monokai", line_numbers=True)
print(syntax)

위 코드는 다음과 같은 출력을 생성합니다:

1 │ [38;5;16mprint[39m[38;5;197m([39m[38;5;155m'Hello, Rich!'[39m[38;5;197m)[39m

코드 객체 검사

Rich는 코드 상의 객체에 대한 정보를 표시하는 기능을 제공합니다. 예를 들어, 다음 코드는 Rich를 사용하여 코드 객체의 정보를 출력합니다:

from rich.inspect import inspect
def add(a, b):
return a + b
inspect(add)

위 코드는 다음과 같은 출력을 생성합니다:

<function add at 0x7f2863593840>
- __code__
├─ co_filename: /path/to/file.py
├─ co_name: add
├─ co_argcount: 2
├─ co_posonlyargcount: 0
├─ co_kwonlyargcount: 0
├─ co_nlocals: 2
├─ co_stacksize: 2
├─ co_flags: 67
├─ co_code: b't\x00\x00...'
├─ co_consts: (None, '+')
├─ co_names: ()
├─ co_varnames: ('a', 'b')
├─ co_filename: /path/to/file.py
├─ co_name: add
├─ co_firstlineno: 3
├─ co_lnotab: b'\x00\x02\x0c'
├─ co_freevars: ()
└─ co_cellvars: ()

콘솔 클래스

Rich는 콘솔 출력을 스타일링하는 데 사용할 수 있는 Console 클래스를 제공합니다. 이 클래스를 사용하여 텍스트의 색상, 배경색, 굵게, 이탤릭체 등의 서식을 지정할 수 있습니다. 예를 들어, 다음은 Rich를 사용하여 텍스트를 스타일링하는 예입니다:

from rich.console import Console
console = Console()
console.print("[bold cyan]Hello, Rich![/bold cyan]")

위 코드는 콘솔에 다음과 같은 텍스트를 출력합니다:

Rich Formatting

로깅과 추적

Rich는 로그 메시지와 추적 정보를 보다 쉽게 표시할 수있는 도구를 제공합니다. 예를 들어, 다음 코드는 Rich를 사용하여 로깅 및 추적 기록을 출력합니다:

import logging
from rich.logging import RichHandler
logger = logging.getLogger(__name__)
logger.addHandler(RichHandler())
logger.error("An error occurred")

위 코드는 다음과 같은 텍스트를 출력합니다:

Rich Logging

위의 예제에서는 Rich가 제공하는 주요 기능 중 일부가 소개되었습니다. 추가 기능을 확인하려면 Python Rich 공식 사이트를 참조하십시오.

사용자의 참여를 위한 애니메이션

컨텍스트 관리자 이해

애니메이션

Rich를 사용하여 사용자의 참여를 유지하는 가장 강력한 기능 중 하나는 애니메이션입니다. 애니메이션은 동적인 상태를 표시하는 데 사용되며, 대화 상자, 테이블, 진행률 바 등과 같은 다양한 형식으로 표시 할 수 있습니다. 예를 들어, 다음은 Rich를 사용하여 진행률 바를 표시하는 예입니다:

from rich.progress import Progress
with Progress() as progress:
task = progress.add_task("[cyan]Processing...", total=100)
while not progress.finished:
progress.update(task, advance=1)

위 코드는 진행률 바를 사용하여 현재 진행 상태를 지속적으로 업데이트합니다.

이 외에도 Rich는 테이블, 대화 상자, 터미널 샷 등을 동적으로 생성하는 다양한 기능을 제공합니다.

테이블을 살려내기

Rich를 사용하여 테이블을 살아있게 만들 수도 있습니다. 정적인 테이블을 구축하는 방법, 스크롤 가능한 디스플레이를 애니메이션화하는 방법, 암호화폐 데이터에 액세스하는 방법, 실시간 테이블을 코딩하는 방법 등을 배우게 될 것입니다.

결론

Python Rich 패키지는 콘솔 텍스트를 아름답고 동적으로 표시하기 위한 강력한 도구입니다. 이 패키지를 사용하면 명령줄 도구의 사용자 인터페이스를 강화하고 콘솔 출력의 가독성을 개선 할 수 있습니다. 또한 테이블을 살아있게 만들고, 실시간 데이터를 표시하는 등의 매력적인 기능을 구현할 수 있습니다.

다음 단계로 넘어가기 전에 Python Rich 패키지를 실험해보고, 플러그인할 수있는 다양한 기능을 알아보도록하십시오. Rich의 공식 문서 및 샘플 코드를 참조하여 보다 깊이 있는 이해를 얻을 수 있습니다.