세로형
Recent Posts
Recent Comments
Link
11-22 00:00
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

파이썬(Python) 라이브러리 소개 - Rich 라이브러리(텍스트 출력을 이쁘게 만들어보자) 본문

python

파이썬(Python) 라이브러리 소개 - Rich 라이브러리(텍스트 출력을 이쁘게 만들어보자)

이수진의 블로그 2020. 6. 3. 22:20
반응형
728x170

포스팅 개요

이번 포스팅은 파이썬(Python) 라이브러리 소개를 하는 글입니다.

파이썬에서 프로그래밍을 하다보면 터미널 화면에 로그를 찍거나, 텍스트를 출력하거나 하는 등의 작업을 빈번하게 수행합니다. 그러나, 일반적인 텍스트는 가독성이 좋지 않다는 단점이 있습니다.

이번 포스팅에서 소개해드릴 Python의 Rich library는 이러한 터미널 환경에서 텍스트 출력을 이쁘게(rich 하게) 꾸밀 수 있는 라이브러리 입니다. 굉장히 흥미롭고 재밌는 라이브러리이기에 소개하고자 합니다.

이번 포스팅은 아래 Rich 라이브러리 github에서 제공해주는 튜토리얼을 기반으로 진행해 보았습니다.

 

willmcgugan/rich

Rich is a Python library for rich text and beautiful formatting in the terminal. - willmcgugan/rich

github.com


포스팅 본문

개요에서 말씀드렸다시피 파이썬으로 프로그래밍을 하다 보면 터미널 환경에서 텍스트 출력이나 로그 출력을 많이 사용하게 됩니다. 그러나 이것은 가독이 좋지 않다는 단점이 있죠.

그러나 이 Rich 라는 파이썬 라이브러리를 사용하게 되면 그런 고민을 어느정도 해결할 수 있습니다. 이 RIch library를 사용하게 되면 아래와 같은 장점이 있습니다.

  • 출력문에 스타일(bold, underline 등)을 추가할 수 있다.
  • 출력문에 컬러를 추가할 수 있다.
  • 출력문에 progress bar를 넣을 수 있다.
  • 이모지를 사용할 수 있다.
  • README와 같은 Markdown으로 되어 있는 문서를 이쁘게 읽을 수 있다.
  • 등등

잘만 활용한다면, 다양한 장점이 있을 것 같습니다.

Python rich 라이브러리 - 시작해보기

먼저, Rich library를 설치해야겠죠? pip install rich로 간단하게 설치할 수 있습니다.

 

자! 설치가 되었다면 간단하게 실습을 해볼 수 있습니다. 해당 실습은 github에 있는 예제를 따라해봤습니다.

 

먼저 아래와 같이

python -m rich

를 입력하게 되면 간단한 설명이 나옵니다.

어떤 색깔을 지원해주는지, Text style에는 어떠한 것이 있는지 등등 다양한 정보를 볼 수 있도록 지원해줍니다.

벌써부터 기존 파이썬 출력과 다르게 이쁘지 않나요? ㅎㅎ

 

그럼 본격적으로 실습을 해봅니다. Python 터미널을 켜서 진행해볼게요!

먼저, 기본적인 print문을 실행해봅니다.

위 사진과 같이 rich 라이브러리를 불러온 후 print문에 [bold]와 같은 옵션을 주면 텍스트 출력이 바뀌는 것을 볼 수 있습니다!

더 나아가서 Rich에서 제공해주는 emoji도 사용할 수 있는데요!

:vampire:나 :apple: 과 같이 이모지의 키워드를 넣어주면 파이썬 터미널 출력문에서 이모지가 나오는 것을 확인할 수 있습니다.

저는 여기서 와 대박 ㅎㅎㅎㅎ 이랬네요

또한, locals()라는 함수를 호출하게 되면 기존의 터미널 환경에서는 dict 구조가 그냥 한 줄로 쭉 나왔었는데요. Rich에서 제공해주는 Print문에 locals()를 호출하게 되면

위 사진과 같이 이쁘고, 보기 편하게 출력이 되는 것을 볼 수 있습니다. 여기서 조금 아쉬운 것은 그냥 일반 dictionary를 만들었을 때도 지원해줄 지 알았는데.. 저렇게 나오지 않더라구요. 다른 방법이 있는 것인지.. 찾아 봐야할 것 같습니다.

 

조금 더 활용해보기

조금 더 rich 라이브러리를 활용할 수 있도록 Rich 라이브러리에서는 Console 이라는 것을 제공해줍니다.

from rich.console import Console 로 가져올 수 있으며 Console() 객체를 만들어 사용할 수 있습니다.

예시를 한 번 보시죠!

Console에서 print 문을 제공해주는데, 아까와 비슷하게 사용할 수 있습니다. 다만, 여기서는 style 이라는 매개변수에 어떤 스타일을 원하는 지 넣을 수 있도록 지원해줍니다. 그리고 처음에 보았던 print와 동일하게 대괄호 [] 안에 Rich에서 제공해주는 키워드를 넣으면 bold, 밑줄 등을 설정할 수 있습니다.

또한, Console을 사용하면 log 데이터도 처리할 수 있는데요. 아래와 같이 파이썬 파일(.py)을 하나 만들어서 내용을 넣어보겠습니다. 그리고 해당 파이썬 파일을 터미널상에서 실행해보겠습니다.

위 파이썬 내용을 실행하게 되면 위 처럼 로그가 이쁘게 나오는 것을 볼 수 있습니다.

가장 처음, 시간이 찍히고 Hello from ~~ 내용이 직히게 됩니다. 그리고 다음 console.log로 넘어가게 되는데요.

이때 console.log안에 출력하고자 하는 데이터와 함께 log_locals=True를 넣게 된다면 출력하고자 하는 데이터도 보기 좋게 나오는 것을 볼 수 있으며 그와 동시에 locals에 해당되는 값들을 locals 라는 박스 안에 출력해주는 모습도 볼 수 있습니다.

정말 신기하죠? ㅎㅎ

 

그 외 흥미로운 것

그 외에도 console에서 제공해주는 기능 중 흥미로운 것을 더 소개해드리겠습니다.

1. Marckdown 출력

아래와 같은 README.md를 Python Rich 라이브러리로 읽어보겠습니다. 

위와 같은 README.md 파일이 있다고 가정하고 아래와 같이 간단하게 코드를 작성해줍니다.

from rich.console import Console
from rich.markdown import Markdown

console = Console()

with open("README.md") as f:
    markdown = Markdown(f.read())

console.print(markdown)

짠! 그러면 Markdown 문서가 위와 같이 깔끔하게 출력되는 것을 확인할 수 있습니다.

 

2. 테이블 만들기

파이썬 RIch 라이브러리에서는 Table로 출력을 할 수 있도록 기능을 제공해줍니다. 아래 사진과 같이 코드를 입력해봅니다. 

  • rich.table에서 Table을 import
  • Table 객체를 생성하면서 스타일, header 유무 등을 설정
  • add_column으로 컬럼 추가
  • add_row로 row 데이터 추가
  • console.print로 출력

그러면 위와 같이 테이블 형태로 출력이 되는 것을 확인할 수 있습니다.


마무리

이번 포스팅은 간단하게 파이썬 터미널 상에서 출력을 깔끔하고 예쁘게 해주는 라이브러리인 Rich 라이브러리를 소개했습니다.

중간중간 '어? 이 기능은 안되네?' 라는 생각이 들었던 것도 있었지만, 아직 열심히 진행중인 프로젝트이니 기대가 됩니다.

앞으로 중간중간 지켜봐야 할 라이브러리 인 것 같습니다. 잘만 활용한다면 가독성 좋은 로그를 보여줄 수 있을 것 같습니다.

반응형
그리드형
Comments