iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >总结几个非常实用的Python库
  • 825
分享到

总结几个非常实用的Python库

2024-04-02 19:04:59 825人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

自带库 一、datetime datetime是python处理日期和时间的标准库。 1、获取当前日期和时间 >>> from datetime import

自带库

一、datetime

datetime是python处理日期和时间的标准库。

1、获取当前日期和时间


>>> from datetime import datetime

>>> now = datetime.now()

>>> print(now)

2021-06-14 09:33:10.460192

>>> print(type(now))

<class 'datetime.datetime'>

2、获取指定日期和时间


>>> from datetime import datetime

>>> dt = datetime(2021,6,10,12,0)

>>> print(dt)

2021-06-10 12:00:00

3、datetime转换为timestamp

在计算机中,时间实际上是用数字表示的。我们把1970年1月1日 00:00:00 UTC+00:00时区的时刻称为epoch time,记为0(1970年以前的时间timestamp为负数),当前时间就是相对于epoch time的秒数,称为timestamp(时间戳)。


>>> from datetime import datetime

>>> now = datetime.now()

>>> now

datetime.datetime(2021, 6, 14, 9, 38, 34, 969006)

>>> now.timestamp()	#把datetime转换为timestamp

1623634714.969006

4、timestamp转换为datetime


>>> from datetime import datetime

>>> timestamp = 1623634714.969006

>>> print(datetime.fromtimestamp(timestamp))

2021-06-14 09:38:34.969006

5、str转换为datetime


>>> from datetime import datetime

>>> day = datetime.strptime('2021-6-10 12:12:12','%Y-%m-%d %H:%M:%S')

>>> print(day)

2021-06-10 12:12:12

6、datetime转换为str


>>> from datetime import datetime

>>> now = datetime.now()

>>> print(now)

2021-06-14 09:49:02.281820

>>> print(type(now))

<class 'datetime.datetime'>

>>> str_day = now.strftime('%Y-%m-%d %H:%M:%S')

>>> print(str_day)

2021-06-14 09:49:02

>>> print(type(str_day))

<class 'str'>

二、collections

collections是Python内建的一个集合模块,提供了许多有用的集合类,其中统计功能非常实用。

Counter

Counter是一个简单的计数器,例如,统计字符出现的个数


>>> from collections import Counter

>>> c = Counter()

>>> str = 'jdkjefwnewnfjqbefbqbefqbferbb28934`83278784727'

>>> c.update(str)

>>> c

Counter({'b': 6, 'e': 5, 'f': 5, '8': 4, '7': 4, 'j': 3, 'q': 3, '2': 3, 'w': 2, 'n': 2, '3': 2, '4': 2, 'd': 1, 'k': 1, 'r': 1, '9': 1, '`': 1})

三、base64

Base64是一种用64个字符来表示任意二进制数据的方法。

用记事本打开exejpgpdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。


>>> import base64
>>> base64.b64encode(b'binary\x00string')
b'YmluYXJ5AHN0cmluZw=='
>>> base64.b64decode(b'YmluYXJ5AHN0cmluZw==')
b'binary\x00string'

四、hashlib

Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。

什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。

我们以常见的摘要算法MD5为例,计算出一个字符串的MD5值:


>>> import hashlib

>>> md5 = hashlib.md5()

>>> md5.update("程序员唐丁".encode('utf-8'))

>>> print(md5.hexdigest())

05eb21a61d2cf0cf84e474d859c4c055

摘要算法能应用到什么地方?举个常用例子:

任何允许用户登录的网站都会存储用户登录的用户名和口令。如何存储用户名和口令呢?方法是存到数据库表中。如果以明文保存用户口令,如果数据库泄露,所有用户的口令就落入黑客的手里。此外,网站运维人员是可以访问数据库的,也就是能获取到所有用户的口令。正确的保存口令的方式是不存储用户的明文口令,而是存储用户口令的摘要,比如MD5,当用户登录时,首先计算用户输入的明文口令的MD5,然后和数据库存储的MD5对比,如果一致,说明口令输入正确,如果不一致,口令肯定错误。

第三方库

一、requests

requests是一个Python第三方库,处理URL资源特别方便。在之前的”爬虫简介“文章中我们已经初步认识了它。

1、安装requests

如果安装了Anaconda,requests就已经可用了。否则,需要在命令行下通过pip安装:


$ pip install requests

如果遇到Permission denied安装失败,请加上sudo重试。

2、通过GET访问豆瓣首页,只需要几行代码:


>>> import requests
>>> r = requests.get('https://www.douban.com/') # 豆瓣首页
>>> r.status_code
200
>>> r.text
r.text
'<!DOCTYPE html>\n<html>\n<head>\n<meta name="description" content="提供图书、电影、音乐唱片的推荐、评论和...'

3、对于带参数的URL,传入一个dict作为params参数:


>>> r = requests.get('Https://www.douban.com/search', params={'q': 'python', 'cat': '1001'})
>>> r.url # 实际请求的URL
'https://www.douban.com/search?q=python&cat=1001'

4、requests自动检测编码,可以使用encoding属性查看:


>>> r.encoding
'utf-8'

5、无论响应是文本还是二进制内容,我们都可以用content属性获得bytes对象:


>>> r.content
b'<!DOCTYPE html>\n<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\n...'

6、requests的方便之处还在于,对于特定类型的响应,例如JSON,可以直接获取:


>>> r = requests.get('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&fORMat=json')
>>> r.json()
{'query': {'count': 1, 'created': '2017-11-17T07:14:12Z', ...

7、需要传入HTTP Header时,我们传入一个dict作为headers参数:


>>> r = requests.get('https://www.douban.com/', headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWEBKit'})
>>> r.text
'<!DOCTYPE html>\n<html>\n<head>\n<meta charset="UTF-8">\n <title>豆瓣(手机版)</title>...'

8、要发送POST请求,只需要把get()方法变成post(),然后传入data参数作为POST请求的数据:


>>> r = requests.post('https://accounts.douban.com/login', data={'form_email': 'abc@example.com', 'form_passWord': '123456'})

9、requests默认使用application/x-www-form-urlencoded对POST数据编码。如果要传递JSON数据,可以直接传入json参数:


params = {'key': 'value'}
r = requests.post(url, json=params) # 内部自动序列化为JSON

10、类似的,上传文件需要更复杂的编码格式,但是requests把它简化成files参数:


>>> upload_files = {'file': open('report.xls', 'rb')}
>>> r = requests.post(url, files=upload_files)

在读取文件时,注意务必使用'rb'即二进制模式读取,这样获取的bytes长度才是文件的长度。

post()方法替换为put()delete()等,就可以以PUT或DELETE方式请求资源。

11、除了能轻松获取响应内容外,requests对获取HTTP响应的其他信息也非常简单。例如,获取响应头:


>>> r.headers
{Content-Type': 'text/html; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Content-Encoding': 'gzip', ...}
>>> r.headers['Content-Type']
'text/html; charset=utf-8'

12、requests对Cookie做了特殊处理,使得我们不必解析Cookie就可以轻松获取指定的Cookie:


>>> r.cookies['ts']
'example_cookie_12345'

13、要在请求中传入Cookie,只需准备一个dict传入cookies参数:


>>> cs = {'token': '12345', 'status': 'working'}
>>> r = requests.get(url, cookies=cs)

14、最后,要指定超时,传入以秒为单位的timeout参数:


>>> r = requests.get(url, timeout=2.5) # 2.5秒后超时

二、chardet

字符串编码一直是令人非常头疼的问题,尤其是我们在处理一些不规范的第三方网页的时候。虽然Python提供了Unicode表示的strbytes两种数据类型,并且可以通过encode()decode()方法转换,但是,在不知道编码的情况下,对bytesdecode()不好做。

对于未知编码的bytes,要把它转换成str,需要先“猜测”编码。猜测的方式是先收集各种编码的特征字符,根据特征字符判断,就能有很大概率“猜对”。

当然,我们肯定不能从头自己写这个检测编码的功能,这样做费时费力。chardet这个第三方库正好就派上了用场。用它来检测编码,简单易用。

1、安装chardet

如果安装了Anaconda,chardet就已经可用了。否则,需要在命令行下通过pip安装:


$ pip install chardet

如果遇到Permission denied安装失败,请加上sudo重试。

2、当我们拿到一个bytes时,就可以对其检测编码。用chardet检测编码,只需要一行代码:


>>> chardet.detect(b'Hello, world!')
{'encoding': 'ascii', 'confidence': 1.0, 'language': ''}

三、psutil

用Python来编写脚本简化日常的运维工作是Python的一个重要用途。在linux下,有许多系统命令可以让我们时刻监控系统运行的状态,如pstopfree等等。要获取这些系统信息,Python可以通过subprocess模块调用并获取结果。但这样做显得很麻烦,尤其是要写很多解析代码。

在Python中获取系统信息的另一个好办法是使用psutil这个第三方模块,它不仅可以通过一两行代码实现系统监控,还可以跨平台使用,支持Linux/UNIX/OSX/windows等,是系统管理员和运维小伙伴不可或缺的必备模块。

1、安装psutil

如果安装了Anaconda,psutil就已经可用了。否则,需要在命令行下通过pip安装:


$ pip install psutil

如果遇到Permission denied安装失败,请加上sudo重试。

2、获取CPU信息

我们先来获取CPU的信息:


>>> import psutil
>>> psutil.cpu_count() # CPU逻辑数量
4
>>> psutil.cpu_count(logical=False) # CPU物理核心
2
# 2说明是双核超线程, 4则是4核非超线程

3、统计CPU的用户/系统/空闲时间:


>>> psutil.cpu_times()
scputimes(user=10963.31, nice=0.0, system=5138.67, idle=356102.45)

4、获取内存信息

使用psutil获取物理内存和交换内存信息,分别使用:


>>> psutil.virtual_memory()
svmem(total=8589934592, available=2866520064, percent=66.6, used=7201386496, free=216178688, active=3342192640, inactive=2650341376, wired=1208852480)
>>> psutil.swap_memory()
sswap(total=1073741824, used=150732800, free=923009024, percent=14.0, sin=10705981440, sout=40353792)

返回的是字节为单位的整数,可以看到,总内存大小是8589934592 = 8 GB,已用7201386496 = 6.7 GB,使用了66.6%。

而交换区大小是1073741824 = 1 GB。

5、获取磁盘信息

可以通过psutil获取磁盘分区、磁盘使用率和磁盘IO信息:


>>> psutil.disk_partitions() # 磁盘分区信息
[sdiskpart(device='/dev/disk1', mountpoint='/', fstype='hfs', opts='rw,local,rootfs,dovolfs,journaled,multilabel')]
>>> psutil.disk_usage('/') # 磁盘使用情况
sdiskusage(total=998982549504, used=390880133120, free=607840272384, percent=39.1)
>>> psutil.disk_io_counters() # 磁盘IO
sdiskio(read_count=988513, write_count=274457, read_bytes=14856830464, write_bytes=17509420032, read_time=2228966, write_time=1618405)

好了,就先介绍这么多吧,更多实用的Python库后面唐丁再给大家一一介绍

到此这篇关于总结几个非常实用的Python库的文章就介绍到这了,更多相关Python库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 总结几个非常实用的Python库

本文链接: https://www.lsjlt.com/news/129126.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 总结几个非常实用的Python库
    自带库 一、datetime datetime是Python处理日期和时间的标准库。 1、获取当前日期和时间 >>> from datetime import ...
    99+
    2022-11-12
  • 七个非常实用的Python工具包总结
    目录一、Faker二、Pywebio三、Airflow四、Loguru五、Pydash六、Weights & Biases七、PyCaretSummary一、Faker 生产...
    99+
    2022-11-12
  • 总结几段非常有用的脚本
    本篇内容主要讲解“总结几段非常有用的脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“总结几段非常有用的脚本”吧!一、在网络硬件故障或网络故障断开时发送警告 复制代码 代码如下:str...
    99+
    2023-06-08
  • python slice的几个小点总结
        今天在写代码的时候,看到一个比较有意思的写法。假设我们有一个list,它的内容是a = [0, 1, 2, 3, 4, 5, 6, 7, 8 ,9]。如果我们取它反转后的结果,一般我们头脑里默认想到的无非就是reverse...
    99+
    2023-01-31
    几个 小点 python
  • 总结SQL Server非常实用的脚本
    本篇内容主要讲解“总结SQL Server非常实用的脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“总结SQL Server非常实用的脚本”吧!1、 查询数据...
    99+
    2022-10-18
  • JavaScript数组 几个常用方法总结
    目录1、前言2、filter()3、map()4、sort()5、reduce()6、forEach()7、方法列表8、本文参考1、前言 数组方法有太多了,本文记录一些本人容易记错的...
    99+
    2022-11-12
  • Python最常用的20个包总结
    numpy(数据处理和科学计算) 代码示例: arr = np.array([1, 2, 3, 4, 5]) print(arr) pandas(数据处理和分析) 代码示例: ...
    99+
    2023-05-15
    Python常用 Python常用包
  • 14个用Python实现的Excel常用操作总结
    目录前言一、关联公式:Vlookup二、数据透视表三、对比两列差异四、去除重复值五、缺失值处理六、多条件筛选七、 模糊筛选数据八、分类汇总九、条件计算十、删除数据间的空格十一、数据分...
    99+
    2022-11-11
  • Win7系统组策略的几个常用技巧总结
    第一.限制、隐藏磁盘分区 为了使用方便,我们有时也在多人共用的公用电脑中存放一些属于个人隐私级别的数据资料,为了保证这些数据的安全,可以通过对磁盘分区进行限制或隐藏来实现对数据的保护。 在打开的“组策略&rd...
    99+
    2023-05-29
    win7 组策略 常用 技巧 Win7
  • 总结几个常用PHP字符串转换函数
    PHP是一种广泛使用的开源编程语言,用于Web开发。字符串(String)是PHP中最常见的数据类型之一,可以用于存储文本、数字、日期时间和其他类型的数据。在PHP中,有很多函数用于操作字符串,其中包括字符串转换函数。本文将介绍几个常用的P...
    99+
    2023-05-14
    php php字符串
  • python 常用的几个镜像仓库
    一般使用python安装库,会用到pip install libName ,,这个会在Python的官方源pypi.python.org/pypi 下载,有时会因为超时会抛异常无法下载成功。所以可以选择一些比较稳定速度比较快的国内...
    99+
    2023-01-31
    几个 镜像 仓库
  • Spring中11个最常用的扩展点总结,你知道几个
    目录前言1. 类型转换器2. 获取容器Bean2.1 BeanFactoryAware2.2 ApplicationContextAware2.3 ApplicationListen...
    99+
    2022-12-20
    spring的扩展点 spring扩展点实际应用 spring扩展点顺序
  • 总结15个Python库的功能
    这篇文章主要介绍“总结15个Python库的功能”,在日常操作中,相信很多人在总结15个Python库的功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”总结15个Python库的功能”的疑惑有所帮助!接下来...
    99+
    2023-06-15
  • 十个Python中常用的pip命令总结
    目录安装如何使用升级安装某个版本的包卸载或者是更新包查看某个包的信息查看需要被升级的包查看兼容问题指定国内源来安装下载包但是不安装批量安装软件包小编相信对于大多数熟悉Python的人...
    99+
    2022-11-11
  • 我常用的几个第三方 Python 库
    作者:赖勇浩(http://blog.csdn.net/lanphaday) 今天公司停电,没上班。跑上来更新个博客,跟大家分享一下我常用的几个第三方 Python 库。Python 语言之所以能够如此流行,除了本身内置许多程序库来保障...
    99+
    2023-01-31
    几个 第三方 常用
  • Python新手们容易犯的几个错误总结
    前言 这篇文章主要给大家总结了关于学习Python的新手们容易犯的几个错误,一共四个易犯错误,下面来看看详细的介绍吧。 一、i+=1 不等于++i 初学者对Python语言不是特别了解的话,又正好有c++,...
    99+
    2022-06-04
    几个 错误 新手
  • 分享3个非常实用的 Python 模块
    目录一、Psutil二、Pendulum三、Pyfiglet一、Psutil Python当中的Psutil模块是个跨平台库,它能够轻松获取系统运行的进程和系统利用率,包括CPU、内...
    99+
    2022-11-13
  • mysql复制表的几种常用方式总结
    目录mysql复制表的几种方式 1、复制表结构及数据到新表2、只复制表结构到新表3、复制旧表的数据到新表(假设两个表结构一样)4、复制旧表的数据到新表(假设两个表结构不一样)5、可以将表1结构复制到表26、可以...
    99+
    2023-04-10
    mysql复制表语句 mysql如何复制表 mysql数据表复制
  • python常用小脚本实例总结
    目录前言打印16进制字符串文件合并多线程下载图集多线程下载图片爬虫抓取信息爬虫多线程下载电影名称串口转tcp工具远程读卡器server端黑客rtcp反向链接调用c的动态库示例tcp的...
    99+
    2022-11-11
  • 4种非常实用的python内置数据结构
    array Python不仅仅可以使用内置的list实现数组,还支持像C语言那样的指定类型的原生数组array。 很显然,因为list可以存储各种类型的对象,而array只存储一个指定的原生类型,所以当数据量较大时...
    99+
    2022-06-02
    python 数据结构 python 内置数据结构
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作