파이썬 코딩을 하면서 아주 사소한 불편함을 경험할 때가 있고 결국 코딩이라는 것이 주로 불편함을 해결하기 위한 것이니 만큼 구글링을 하여 해결방법을 찾아 불편함을 해소할 수 있습니다.

 

1. pprint

파이썬으로 많은 데이터를 다루면 자주쓰는 딕셔너리 형태의 데이터를 print로 출력해보면 줄바꿈이 없어 아주 알아보기 힘든 경우가 많습니다. 이경우 pprint 함수를 이용하면 각 값들 다음에 줄바꿈을 해서 결과를 보여줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pprint
 
example = {"Lorem ipsum dolor sit amet," : {"consectetur adipisicing elit,":"sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
                                        "Ut enim ad minim veniam,":"quis nostrud exercitation ullamco laboris",
                                        "nisi ut aliquip ex ea commodo consequat":"Duis aute irure dolor in reprehenderit in",
                                        "voluptate velit esse cillum dolore eu fugiat nulla pariatur.":"Excepteur sint occaecat cupidatat non proident",
                                        "sunt in culpa qui officia deserunt":"mollit anim id est laborum."}
          }
 
print("print함수이용")
print(example)
print("\n")
print("pprint함수이용")
pprint.pprint(example)
cs

각각의 결과를 보면 다음과 같습니다.

상위 value 딕셔너리 안의 각각의 value값이 두개 단어별로 줄바꿈이 되어 있네요.

위와 같이 print를 이용했을땐 읽어보기 싫을 정도로 복잡하지만 pprint를 이용할 경우 그 구조나 내용이 한눈에 잘 들어옵니다. 정렬 방식은 다양하니 각자가 인터넷을 통해 찾아보면 될 듯 합니다.

(알고보니 pprint의 앞의 p가 pretty 인 듯 합니다.ㅎㅎ)

 

2. textwrap

코딩도 언어이고 남에게 잘 전달할 수 있게 작성하는 것이 무엇보다도 중요합니다. PEP 8 -- Style Guide for Python Code 라는 파이썬 표준 스타일 가이드는 이에 대한 가이드로 좀 더 쉽고 명확하게 코딩을 작성할 수 있도록 도와줍니다.

https://www.python.org/dev/peps/pep-0008/#maximum-line-length

 

PEP 8 -- Style Guide for Python Code

The official home of the Python Programming Language

www.python.org

(포탈에 PEP8을 검색하면 여러 설명 자료가 있습니다.)

 

그리고 PEP8의 Maximum Line Length를 보면 한줄의 길이는 79자를 넘기지 말아야 한다는 조건이 있습니다.

1
ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHI
cs

(보충 설명도 있지만 어쨌든 생각보다 너무 짧습니다.)

 

 

본론으로 넘어가 아래 문단을 하나의 변수로 지정하여 출력하고 싶지만 위의 가이드 대로 한 라인의 글자수를 제한하려고 하면 문제가 생깁니다. (뭔가 불편한 추가 작업이 필요합니다.)

 

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

 

이경우 textwrap함수를 사용합니다.

1
2
3
4
5
6
7
8
9
10
11
import textwrap
 
example = textwrap.fill("Lorem ipsum dolor sit amet, consectetur adipisicing"
"elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "
"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut "
"aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in "
"voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint "
"occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit "
"anim id est laborum.")
 
print(example)
cs

깔끔하게 79자정도로 정리하여 작성하였고 결과는 다음과 같습니다.

기본값인 한줄에 70자 이내로 보여줍니다.

아래 웹페이지에서 다양한 기능을 확인할 수 있습니다.

https://docs.python.org/ko/3.7/library/textwrap.html

 

textwrap — 텍스트 래핑과 채우기 — Python 3.7.8 문서

textwrap — 텍스트 래핑과 채우기 소스 코드: Lib/textwrap.py textwrap 모듈은 모든 작업을 수행하는 클래스인 TextWrapper뿐만 아니라 몇 가지 편리 함수도 제공합니다. 한두 개의 텍스트 문자열을 래핑(wra

docs.python.org

막상 알고나면 많은 이들이 자주 사용하고 있는 기능들입니다.

 

그리고 위의 두가지 팁에서 제가 예문으로 사용한 문단에 대한 정보는 다음과 같습니다.

https://ko.wikipedia.org/wiki/%EB%A1%9C%EB%A0%98_%EC%9E%85%EC%88%A8

 

로렘 입숨 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 로렘 입숨(lorem ipsum; 줄여서 립숨, lipsum)은 출판이나 그래픽 디자인 분야에서 폰트, 타이포그래피, 레이아웃 같은 그래픽 요소나 시각적 연출을 보여줄 때 사용�

ko.wikipedia.org

실력이 우선이겠지만 단순 예문을 사용하는 것도 매번 그때그때 생각나는 단어/문장이 아닌 이러한 통용되는 것들을 자주 이용할수록 좀 더 프로페셔널한 느낌이 나서 더욱 매진할 수 있는 계기가 되는 것 같습니다.ㅎ

무엇보다 일관성이 중요합니다.

 

+ Recent posts