너무 긴 문장을 변수에 담아서 출력한다면 읽기가 쉽지 않을 것이다. 파이썬(Python)에서 제공하는 내장 모듈 textwrap을 이용하면 긴 문장(문자열) 생략(중략)하거나 줄 바꿈을 해줄 수 있다. textwrap은 파이썬(Python) 내장 모듈이므로 파이썬 설치 시 기본적으로 깔려있다. 이번 포스팅에서는 textwrap을 통한 긴 문장 생략, 줄바꿈 방법을 살펴보고자 한다.
textwrap 사용법
textwrap을 임포트하고 긴 문장을 가져오기 위해 네이버 뉴스 기사 중 일부를 발췌하여 long_text에 담았다.
import textwrap
long_text = '지난 3일 SM의 제3자배정 유상증자와 전환사채발행에 대해 법원이 가처분을 인용하자 9.05% 지분 확보가 무산된 카카오는 전혀 예상치 못한 결과에 긴급 이사회를 열었다. 그 전까지만 해도 내부에선 하이브가 당시 보유했던 수준의 지분만 가지고 사업협력을 하는 방안이 선호됐던 것으로 알려졌다. 그러나 협력마저 무산될 위기에 처하면서 주말인 4, 5일까지 내부 논의를 거쳐 15만원 공개매수라는 ‘묘수’를 도출했다. 불과 3일만에 협력에서 인수로 선회하는 결정을 내리고 실행까지 옮긴 것은 기존 대기업에선 불가능에 가까운 속도다. 또 9일부터 지난 11일 저녁까지 이어진 협상 테이블에서 하이브-카카오-SM 간의 글로벌 사업협력 등으로 하이브도 이기게 해주는 ‘윈윈’ 구조를 빠르게 마련한 것도 특유의 유목민 같은 의사결정 구조가 바탕이 됐다.'
1) 생략 : shorten
먼저 문장을 생략 해보자. textwrap에서 제공하는 shorten을 이용하면 된다. shorten은 첫 번째 인자로 생략하고자 할 텍스트를 받고 두 번째 인자로 잘라낼 문자열 폭을 지정한다.
short_text = textwrap.shorten(long_text, width=100)
print(short_text)
위 코드를 실행하면 아래와 같이 문장 끝 부분이 생략되며 '[ . . .]'로 뒷부분이 생략되었음을 표시해 준다.
placeholder 인자를 설정하면 생략 표시 문자열을 지정할 수 있다.
short_text = textwrap.shorten(long_text, width=100, placeholder=' ...중략...')
print(short_text)
2) 줄 바꿈 : wrap, fill
a. wrap
wrap을 이용하면 주어진 문자열 길이를 넘지 않게 문장을 쪼개서 리스트로 변환할 수 있다. 아래 코드는 문자열 길이를 40을 넘지 않게 쪼갠 다음 리스트로 반환한다.
wrapped_text = textwrap.wrap(long_text, width=40)
wrapped_text
join을 이용하면 줄 바꿈 된 문장을 출력할 수 있다.
print('\n'.join(wrapped_text))
b. fill
wrap을 이용하여 줄 바꿈 하려면 주어진 길이 단위로 쪼갠다음 join으로 합쳐줘야 했다. 하지만 fill은 한 방에 해결해 준다. 사용 방법은 wrap과 같다.
filled_text = textwrap.fill(long_text, width=40)
print(filled_text)
'프로그래밍 > Python' 카테고리의 다른 글
파이썬(Python) 달력 다루기 (feat. calendar) (0) | 2023.03.18 |
---|---|
파이썬(python) 날짜 다루기 (feat. datetime) (0) | 2023.03.18 |
파이썬(Python) typing 모듈을 이용한 annotation 세부 설정하기 (0) | 2023.02.21 |
파이썬(Python) pickle을 이용한 파이썬 객체 저장 (0) | 2023.02.03 |
파이썬(Python) ast 모듈을 이용하여 문자(String) 타입의 리스트나 튜플, 딕셔너리를 리스트, 튜플, 딕셔너리 타입으로 변환하기 (feat. literal_eval) (0) | 2023.01.19 |
댓글