15个好用到哭的Python库

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 👍

# 红心
red_heart = emoji.emojize('You hurt my :red_heart:')
print(red_heart)
# You hurt my ❤

# 空心
empty_heart = emoji.emojize('empty heart or write heart :red_heart:', variant='emoji_type')
print(empty_heart)  #下边是显示的问题,在pycharm中正常哦
# empty heart or write heart ❤

9. Chardet

作用

检测文件或数据流的字符集

比如:分析大量随机文本时很有用。当不知道字符集是什么时,可处理远程下载的数据时使用它

10. Python-dateutil

概念

提供了对标准datetime模块的强大扩展

常规的Python日期时间功能在哪里结束,Python-dateutil就出现了。

示例代码:模糊分析日志文件中的日期
from dateutil.parser import parse

logline = 'INFO 2021-01-01T00:00:01 Happy New Year, Jason.'
timestamp = parse(logline, fuzzy=True)
print(timestamp)
# 2021-01-01 00:00:01
更多功能
  • 计算相对增量(下个月、明年、下周一、该月的最后一周等)和两个给定日期对象之间的相对增量
  • 使用ICalendar规范的超集,根据重复规则计算日期
  • tzfile文件(/etc/localtime、/usr/share/zoneinfo 等)的时区(tzinfo)实现,TZ环境字符串(所有已知格式),ICalendar格式文件,给定范围(在相对增量的帮助下),本地计算机时区、固定偏移时区、UTC时区和基于Windows注册表的时区
  • 基于奥尔森数据库的内部最新世界时区信息
  • 使用Western、Orthodox或Julian算法计算任意一年的复活节周日日期

11. 进度条:progress和tqdm

使用场景

使用这两个程序包创建自己的进度条,更快

progress 示例代码
from progress.bar import Bar
bar = Bar('Processing', max=20)
for i in range(20):
    # Do some work
    bar.next()
bar.finish()
# 这个没有啥显示
tqdm 动画演示
from tqdm import tqdm

for i in tqdm(range(int(9e6))):
    pass

# 运行代码会一点一点走到100%
# 100%|██████████| 9000000/9000000 [00:03<00:00, 2954047.95it/s]

12. IPython

概念

Python的交互式外壳,是运行Python的好方法。

IPython是Jupyter Notebook的核心,是一个开放源代码Web应用程序,可让用户创建和共享包含实时代码、方程式、可视化效果和叙述文本的文档。

增强的IPython shell提供的一些功能包括
  • 全面的对象自省
  • 输入历史记录,跨会话持续存在
  • 在具有自动生成的引用的会话期间缓存输出结果
  • 制表符补全,默认情况下支持python变量和关键字,文件名和函数关键字的补全
  • "魔术"命令,用于控制环境并执行很多与IPython或操作系统相关的任务
  • 会话记录和重新加载
  • 对pdb调试器和Python分析器的集成访问
  • IPython的一个鲜为人知的功能:它的体系结构还允许并行和分布式计算

13. Homeassistant

概述

能够集成和控制各种设备和协议,并且都是免费和开源的。

比如:将房屋自动化

14. Flask

概念

Flask是Python的一个轻量级的开发框架,用于创建快速的Web服务或简单的网站,是一个微框架,旨在使核心保持简单但可扩展。

15. BeautifulSoup

使用场景

BeautifulSoup是一个Python库,用于从HTML和XML文件中提取数据。它提供了导航、搜索和修改解析树的简单方法

特点

非常强大,即使损坏了也能处理各种HTML

功能
  • Beautiful Soup 会自动将传入文档转换为Unicode,将传出文档转换为UTF-8。无需考虑编码
  • Beautiful Soup 位于流行的Python解析器(如lxml和html5lib)的顶部,使用户可以尝试不同的解析策略或提高灵活性
  • Beautiful Soup 会解析用户提供的任何内容,并为用户做遍历树的工作。用户可将其告诉"查找所有链接"或"查找带有粗体的表格标题,然后给我该文字"
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员老五

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值