medium.com 이라고 각 분야의 전문가들이 전문적인 기술이나 의견을 소개하는 홈페이지입니다. 우연히 알게되어 가끔 들어갔었는데 많은 좋은 글들이 있습니다. 글을 몇개 읽으면 1달 무료 사용 및 한달에 5달러로 구독을 해야 자유로운 이용이 가능합니다. (구독을 하는 건 좀 더 고민을...)
이 포스트의 제목과 같이 15가지의 파이썬 라이브러리를 추천하고 있는데 이번에도 번역을 해 보았습니다.
(이번에는 최대한 의역하여 번역느낌을 없애보려고 합니다.)
medium.com/pythonland/top-15-python-packages-you-must-try-838ebb9545dc
당신이 꼭 사용해 봐야 할 파이썬 패키지 탑 15
PyPI에서 직접 뽑은 가장 유용하고 놀랄만한 리스트
왜 우리는 파이썬을 사랑하나요? 초심자에겐 정말 아름다울정도로 배우기 쉬운 프로그래밍 언어입니다. 또다른 이유로는 파이썬은 부스터가 장착된 언어로 멋진 라이브러리들이 기본으로 포함되어 있기 때문입니다. 하지만 저는 23만개의 사용자가 기여한 수많은 패키지가 파이썬을 강하고 인기있게 만들어 준다고 봅니다.
이 기사에서는 제가 파이써니스타로서 일해온 10년간의 경험을 바탕으로 직접 고른 매우 유용한 15개의 파이썬 패키지를 소개하고자 합니다.
1. Dash
Dash는 최신 라이브러리입니다. 순수 파이썬에서만 구동되는 데이터 시각화에 특화되어 있는 앱으로 특히 데이터를 가지고 일하는 이들에게 딱 맞습니다. Dash는 Flask나 Plotly.js 그리고 React.js와 함께 사용합니다.
Dash는 정말 한줄의 자바스크립트 구문을 넣지 않고도 아름답게 원하는 것들을 Dashboard로 구성할 수 있습니다.
2. PyGame
PyGame은 SDL(Simple Directmedia Layer) multimedia library로 만들어진 파이썬 모듈입니다. Simple DirectMedia Layer는 아래의 기본적인 단계의 입력을 가능하게 하는 교차 사용 가능한 플랫폼 개발 라이브러리 입니다.
- audio / keyboard / mouse / joystick / graphics hardware via OpenGL and Direct3D
Pygame은 휴대성이 정말 뛰어나며 거의 모든 구동되는 시스템 플랫폼에서 돌아갑니다. 기본적인 목적은 게임엔진용이라 할 지 몰라도 이 라이브러리를 통하여 파이썬으로 구문을 작성, mp3파일을 재생할 수 있습니다.
PyGame은 자신들의 웹사이트도 있습니다. pygmae.org 이며 이 곳에서 튜토리얼과 설치 설명을 볼 수 있습니다.
3. Pillow
pillow는 파이썬의 이미지 라이브러리입니다. 이 라이브러리를 통하여 썸네일을 제작할 수 있고 파일 형식을 변경하거나 회전하거나 필터를 적용하거나 파일을 볼 수 있는 등 많은것을 할 수 있습니다. 많은 이미지 파일들을 동일 변경 적용할 경우 매우 이상적입니다.
얼른 그것이 어떻게 돌아가는지 알고 싶다면 아래 파이썬 코드와 같이 이미지를 띄울 수 있습니다.
1
2
3
4
5
6
|
from PIL import Image
im = Image.open("kittens.jpg")
im.show()
print(im.format, im.size, im.mode)
# JPEG (1920, 1357) RGB
|
cs |
또는 파이썬 쉘이나 IPython을 이용하여 바로 진행할 수도 있습니다.
모든 기능들을 보시려면 클릭해 주세요.
4. Colorama
Colorrama를 통해서 터미널에 색상을 넣을 수 있습니다.
이것이 얼마나 유용한지 알아보기 위해 다음과 같이 예시 코드를 이용해 봅시다.
1
2
3
4
5
6
7
|
from colorama import Fore, Back, Style
print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')
|
cs |
이 방법은 당신의 파이썬 스크립트를 강화시키는데 효과적입니다. Colorama PyPI 페이지에서 짧고 매우 친절한 소개 설명을 볼 수 있습니다.
윈도우에서도 사용하기 위해서는 맨 처음에 colorama.init()을 넣습니다.
5. JmesPath
파이썬에서 JSON을 사용하는 것은 JSON 이 파이썬 딕셔너리에 매우 잘 매핑되면서 정말 쉬운일이 되었습니다. 추가적으로 파이썬은 자체적으로 json을 분석하거나 만들수 있는 멋진 'json' 라이브러리를 만들었습니다. 저는 그래서 json작업을 할 때면 파이썬을 반사적으로 실행합니다.
하지만 뭔가 잊고 있다는 것을 눈치 채셨는지 모르겠습니다. 만약 당신이 단순히 json.loads()를 통하여 data를 딕셔너리로부터 수동으로 받는다면 계속 이곳 저곳에서 loop가 진행되고 놀랄지 모릅니다.
JMESpath는 (제임스 패스로 발음되는) 파이썬 안의 JSON을 더 쉽게 해줍니다. JSON문서로부터 각 요소를 뽑아낼때 어떤식으로 뽑아낼 지 선언하며 명시해줄 수 있게 해 줍니다. 어떤식으로 동작하는지 알 수 있게 아래 기본적인 사용 예가 있습니다.
1
2
3
4
5
6
7
8
9
10
11
|
import jmespath
# Get a specific element
d = {"foo": {"bar": "baz"}}
print(jmespath.search('foo.bar', d))
# baz
# Using a wildcard to get all names
d = {"foo": {"bar": [{"name": "one"}, {"name": "two"}]}}
print(jmespath.search('foo.bar[*].name', d))
# [“one”, “two”]
|
cs |
위 예시는 단순히 맛보기입니다. PyPI page에서 더 많은 문서를 보세요.
6. Requests
Requests는 세상에서 가장 많이 다운로드 받은 파이썬 라이브러리 urllib3를 만드는데 쓰입니다. 정말 웹의 요청을 단순하게 해주면서 매우 강력하고 다채롭습니다. 아마 이를 가슴깊이 느끼는 분들이 많을 것이라 보이지만 😁 저는 그럼에도 이 라이브러리를 언급하지 않을 수 없었습니다.
간단히 requests가 얼마나 쉬울 수 있는지 봅시다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import requests
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
r.status_code
# 200
r.headers['content-type']
# 'application/json; charset=utf8'
r.encoding
# 'utf-8'
r.text
# u'{"type":"User"...'
r.json()
# {u'disk_usage': 368627, u'private_gists': 484, ...}
|
cs |
아주 기본적인 예입니다. 하지만 requests는 한단계 높은 작업들도 수행할 수 있습니다. 가령,
- Authentication
- Using cookies
- Performing POSTs, PUTs, DELETEs, etc.
- Using custom certificates
- Working with sessions
- Working with proxies
- ... and so much more!
Links: PyPI page Documention
7. Simplejson
파이썬의 기본 json 모듈에 무슨 문제가 있나요? 전혀 없습니다! 사실 파이썬의 json 은 simplejson입니다. 이 말은 파이썬은 simplejson의 한가지 버전을 가져와서 배포한것입니다. 하지만 simplejson을 사용하는 것은 몇가지 장점이 있습니다.
- 더 많은 파이썬 버전에서 구동됩니다.
- 파이썬에 내장된 json보다 더 자주 업데이트 됩니다.
- C언어로 작성된 부분이 있는데(옵션 부분) 훨씬 빠릅니다.
이러한 이유로 인하여 JSON작업을 할 때 다음과 같은 구문을 보게 될 것입니다.
1
2
3
4
|
try:
import simplejson as json
except ImportError:
import json
|
cs |
특별히 아래와 같은 이유가 아니라면, 기본 json 모듈을 이용할 것입니다.
- 날것의 속도
- 기본 라이브러리 안에는 없는 기능
Simplejson은 json보다 훨씬 빠를지 모릅니다. 왜냐하면 C로 구동되는 핵심적인 부분들 때문이겠지요. 하지만 수백만개의 JSON파일을 이용하지 않는다면 이러한 속도는 그다지 관심사가 되기 힘들듯 합니다. 그러한 경우 또 UltraJSON이 있고 이는 거의 대부분이 C로 작성되었거든요.
8. Emoji
이 라이브러리는 누가 보느냐에 따라 좋은 인상을 줄 수도 인상을 찌뿌릴 수도 있을 것 같습니다. 좀 더 진지하게 말해보자면, 이러한 이모티콘은 social media data를 분석할 때 쓸모가 있었습니다.
먼저 emoji 모듈을 설치합니다.
pip install emoji
설치되면 아래와 같이 사용할 수 있습니다.
1
2
3
4
5
6
7
8
9
|
import emoji
result = emoji.emojize('Python is :thumbs_up:')
print(result)
# 'Python is 👍'
# You can also reverse this:
result = emoji.demojize('Python is 👍')
print(result)
# 'Python is :thumbs_up:'
|
cs |
emoji package page를 방문하여 더 많으 예제를 보시기 바랍니다.😁😎😏