大家好,今天我给大家介绍几款评价非常不错的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语法规则
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))
查看内存
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)
最后祝大家天天进步!!学习Python最重要的就是心态。我们在学习过程中必然会遇到很多难题,可能自己想破脑袋都无法解决。这都是正常的,千万别急着否定自己,怀疑自己。如果大家在刚开始学习中遇到困难,想找一个python学习交流环境,可以加入我们,领取学习资料、一起讨论