15个好用到哭的Python库
1. Dash
概念
Dash是用纯Python构建数据可视化App的理想选择,是Flask、Plotly.js和React.js的混合体
使用场景
特别适合处理数据的任何人
2. Pygame
概念
Pygame是SDL多媒体库的Python装饰器,SDL(Simple DirectMedica Layer)是一个跨平台开发库,旨在提供对以下内容的低级接口:
- 音频
- 键盘
- 鼠标
- 游戏杆
- 基于OpenGL和Direct3D的图形硬件
特点
- 具有高度的可移植性,几乎可以在所有平台和操作系统上运行
- 尽管它具有完善的游戏引擎,但也可以使用此库直接从Python脚本播放MP3文件
3. Pillow
概念
Pillow专门用于处理图像,可使用该库创建缩略图,在文件格式之间转换、旋转、应用滤镜、显示图像等等
使用场景
需要对许多图像执行批量操作,这是理想的选择
实例演示:加载并渲染图片
from PIL import Image
im = Image.open('hope.jpg')
im.show() # 会弹出图片
print(im.format, im.size, im.mode)
# JPEG (533, 300) RGB
4. Colorama
概念
Colorama允许在终端使用颜色,非常适合Python脚本
特点
文档简短而有趣,可在Colorama PyPI页面上找到
5. JmesPath
概念
JMESPath使Python处理JSON更加容易
特点
它允许用户明确指定如何从JSON文档中提取元素
实例演示
import jmespath
# 获取一个特定元素
d = {'foo': {'bar': 'baz'}}
print(jmespath.search('foo.bar', d))
# baz
# 使用一个通配符获取所有名字
d = {'foo': {'bar': [{'name': 'Jason'}, {'name': 'Alice'}]}}
print(jmespath.search('foo.bar[*].name', d))
# ['Jason', 'Alice']
6. Requests
概念
Requests建立在世界上下载量最大的Python库urllib3上,它令Web请求变得非常简单
特点
功能强大且用途广泛
实例演示
>>> import requests
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
application/json; charset=utf-8
>>> r.encoding
utf-8
>>> r.text
{"message":"Requires authentication","documentation_url":"https://docs.github.com/rest/reference/users#get-the-authenticated-user"}
>>> r.json()
{'message': 'Requires authentication', 'documentation_url': 'https://docs.github.com/rest/reference/users#get-the-authenticated-user'}
作用
Requests可完成用户能想到的所有高级工作,例如:
- 认证
- 使用cookie
- 执行POST、PUT、DELETE等
- 使用自定义证书
- 使用会话session
- 使用代理
7. Simplejson
概念
Python的json是simplejson,即Python采用了simplejson的一个版本。
使用simplejson的优点
- 适用于更多Python版本
- 比Python随附的版本更新频率更高
- 具有用C编写的(可选)部分,因此非常快速
simplejson与默认json的比较
- simplejson比json快很多,因为它用C实现一些关键部分,用于处理数百万个JSON文件
- 当需要速度和标准库中没有的东西时,使用simplejson
使用案例
# 直接导入
import simplejson
# 或为防止导入失败,进行异常捕获
try:
import simplejson as json
except ImportError:
import json
8. Emoji
使用场景
分析视角媒体数据时,Emoji包非常有用
代码示例
import emoji
# 给力、赞
awesome = emoji.emojize('Python is :thumbs_up:')
print(awesome)
# Python is