推荐几个评价非常高的Python库Arrow、jsonpath、psutil、tenacity

简介: 推荐几个评价非常高的Python库Arrow、jsonpath、psutil、tenacity

大家好,今天介绍几个评价不错的Python库,希望对大家的项目编写有所帮助。

Arrow

Python的标准库模块和类型太多,时区转换麻烦,而Arrow是一个更加智能的Python时间处理库。它实现并更新日期时间类型,支持创建、操作、格式化和转换日期、时间和时间戳,可以使用更少导入和代码处理日期和时间。

https://github.com/crsmithdev/arrow

安装:pip install arrow

import arrow

# 当地时区的时间、年、月、日、时
print(arrow.now())
print(arrow.now().year)
print(arrow.now().month)
print(arrow.now().day)
print(arrow.now().hour)
# 获取指定时区时间
print(arrow.now('US/Pacific'))
# 获取时间戳
print(arrow.now().timestamp())

# Arrow对象转化为字符串时间
print(arrow.now().format(fmt="YYYY-MM-DD HH:mm:ss"))

# 时间戳转化为日期
timeStamp = 1625034427.024892
i = arrow.get(timeStamp)
print(i.format('YYYY-MM-DD HH:mm:ss'))

# 当前时间前一年,1个月前,2周前,3天后,2小时后的时间
print(arrow.now().shift(years=-1, months=-1, weeks=-2, days=3, hours=2).format())

print(arrow.utcnow().span('hour'))

jsonpath

jsonpath用来解析json数据,是一种简单的方法来提取给定JSON文档的部分内容。它提供了类似正则表达式的语法,可以解析复杂的嵌套数据结构,可以非常方便的提取接口返回的数据信息。

安装:pip install jsonpath

使用:

from jsonpath import jsonpath
ret = jsonpath(dic, '语法规则字符串')

jsonpath语法规则

语法 描述
$ 根节点
@ 使用过滤谓词来处理当前节点
. or [] 取子节点
n/a 取父节点,jsonpath未支持
.. 就是不管位置,选择符合条件的条件
* 匹配所有元素节点
[,] 支持迭代器中做多选
?() 支持过滤操作
() 支持表达式计算

image-20210808190926129

JsonPath语法 结果
$.store.book[*].author 获取store下book下的所有author值
$..author 获取所有author 的值
$.store..price 获取 store下以及所有子节点下的所有 price
$..book[2] 获取 book数组的第3个值
$..book[0,1] 获取 book数组的第一、第二的值
$..book[:2] 获取 book数组从索引 0 (包括) 到 索引 2 (不包括) 的所有值
$..book[1:2] 获取 book数组从索引 1 (包括) 到 索引 2 (不包括) 的所有值
$..book[2:] 获取 book数组从索引 2 (包括) 到 结尾 的所有值
$..book[?(@.isbn)] 获取 所有节点以及子节点中 book 数组包含 isbn 的所有值
$.store.book[?(@.price < 10)] 获取 store下 book 数组中 price < 10 的所有值
$..book[?(@.price <= $['expensive'])] 获取 所有节点以及子节点下 book 数组中 price <= expensive 的所有值
$..book[?(@.author =~ /.*REES/i)] 获取所有匹配正则的 book ( 不区分大小写 )
$..* 逐层列出 json 中 的所有值,层级由外到内

psutil

一个跨平台的监控硬件信息的Python库,可以监控、分析操作系统的进程、cpu、内存、网络、磁盘等资源使用情况。

psutil实现的功能类似linux中很多资源监控命令,如 ps、 top、 iotop、 lsof、 netstat、 ifconfig、 free 等,当然,你可以结合Python编程,实现更高级的功能,比如结合前端框架实现可视化资源监控资源信息。

https://github.com/giampaolo/psutil

安装:pip install psutil

查看CPU

import psutil
# cpu的逻辑个数
print(psutil.cpu_count())

#每隔1秒输出每隔cpu的使用率
for x in range(3):
    # interval:每隔0.5s刷新一次
    # percpu:查看所有的cpu使用率
    print(psutil.cpu_percent(interval=1, percpu=True))

image-20210808191127848

查看内存

import psutil
# 输出内存使用情况(总内存、可用内存、内存使用率、已使用内存)
print(psutil.virtual_memory())
svmem(total=17126330368, available=8755355648, percent=48.9, used=8370974720, free=8755355648)

磁盘IO

import psutil
# 磁盘IO信息read_count(读IO数),write_count(写IO数)、read_bytes(IO写字节数),read_time(磁盘读时间),write_time(磁盘写时间)
print(psutil.disk_io_counters())
sdiskio(read_count=308820, write_count=193263, read_bytes=6779938304, write_bytes=3320958976, read_time=7298, write_time=2630)

网络

import psutil
# bytes_sent: 发送的字节数
# bytes_recv: 接收的字节数
# packets_sent: 发送的包数据量
# packets_recv: 接收的包数据量
# errin: 接收包时, 出错的次数
# errout: 发送包时, 出错的次数
# dropin: 接收包时, 丢弃的次数
# dropout: 发送包时, 丢弃的次数
print(psutil.net_io_counters())
snetio(bytes_sent=19362924, bytes_recv=159579883, packets_sent=118788, packets_recv=184342, errin=0, errout=0, dropin=0, dropout=0)

https://github.com/jd/tenacity

tenacity

tenacity是一个 Apache 2.0授权的通用重试库,自动化测试或者爬虫中,当网络不稳定导致请求超时或者等待条件满足时操作,我们可以通过tenacity实现代码的重试功能。

https://github.com/jd/tenacity

pip install tenacity

用法非常简单,直接加上装饰器使用。

重试3次

import tenacity
from tenacity import stop_after_attempt

@tenacity.retry(stop=stop_after_attempt(3))
def retry_test():
    print("重试...")
    raise Exception

retry_test()

重试10秒

import tenacity
from tenacity import stop_after_delay

@tenacity.retry(stop=stop_after_delay(10))
def retry_test():
    print("重试...")
    raise Exception

retry_test()

每隔2秒重试

import tenacity
from tenacity import wait_fixed

@tenacity.retry(wait=wait_fixed(2))
def wait_2_s():

print("Wait 2 second between retries")
raise Exception

print(wait_2_s)

目录
相关文章
|
7天前
|
数据采集 前端开发 JavaScript
Python爬虫 pyquery库详解#4
pyquery 初始化,基本CSS选择器,查找节点,遍历,节点操作,伪类选择器【2月更文挑战第15天】
23 1
Python爬虫 pyquery库详解#4
|
20小时前
|
存储 编解码 算法
MoviePy,一个超强的Python库
MoviePy,一个超强的Python库
|
20小时前
|
Python
patchworklib,一款极其强大的 Python 库!
patchworklib,一款极其强大的 Python 库!
|
20小时前
|
存储 数据库 计算机视觉
Python图像处理库:学会Pillow再也不用PS啦
Python图像处理库:学会Pillow再也不用PS啦
|
20小时前
|
机器学习/深度学习 数据采集 自然语言处理
Python编程的十大神奇依赖库
Python编程的十大神奇依赖库
|
2天前
|
存储 数据可视化 数据挖掘
Python在数据分析中的利器:Pandas库全面解析
【2月更文挑战第7天】 众所周知,Python作为一种简洁、易学且功能强大的编程语言,被广泛运用于数据科学和人工智能领域。而Pandas库作为Python中最受欢迎的数据处理库之一,在数据分析中扮演着举足轻重的角色。本文将全面解析Pandas库的基本功能、高级应用以及实际案例,带您深入了解这个在数据分析领域的利器。
13 1
|
3天前
|
存储 JSON 安全
Pydantic:强大的Python 数据验证库
Pydantic:强大的Python 数据验证库
12 0
|
3天前
|
数据采集 数据挖掘 数据处理
Python中的数据处理利器 - Pandas库详解
Pandas是Python中一款强大的数据处理工具,提供了丰富的数据结构和函数,能够高效地进行数据清洗、转换和分析。本文将深入探讨Pandas库的核心功能和应用,帮助读者更好地理解和利用这一工具。
|
3天前
|
Python
在Python中实现图片转字符画导入所需库
在Python中实现图片转字符画导入所需库
5 1
|
7天前
|
数据采集 XML 前端开发
Python爬虫 Beautiful Soup库详解#4
BeautifulSoup基础,节点选择器,方法选择器,css选择器【2月更文挑战第14天】
40 1

相关产品

  • 云迁移中心