举例讲解Python常用模块
作者:沙沙罗曼 发布时间:2022-03-21 07:35:49
标签:python,常用模块
datetime
日期时间类,主要熟悉API,时区的概念与语言无关。
from datetime import datetime as dt
dt.utcnow() # 系统UTC时间
dt.now() # 系统当前时间
dt(2018, 3, 27, 14, 30) # 获得2018-3-27 14:30对应的datetime对象
dt.now().timestamp() # 秒数1522133962.527885
dt.fromtimestamp(1522133962.527885) # 从秒到datetime对象
dt.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S') # string转datetime对象
dt.now().strftime('%a, %b %d %H:%M') # datetime转string
collections
namedtuple
可用于表示简单只读对象。
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y', 'z'])
p = Point(1, 1, 1)
p.x # 1
p.z # 1
p.x = 2 # Error
deque
双向队列。
from collections import deque
q = deque(['a', 'b', 'c'])
q.append('x')
q.pop() # x
q.append('u')
q.popleft() # a
defaultdict
相对于dict,访问不存在的属性时,会返回lambda表达的返回值。
from collections import defaultdict
dd = defaultdict(lambda : None)
dd['x'] = 1
dd['x'] # 1
print(dd['y']) # None
OrderedDict
有序字典,可以保持字典按属性插入的先后顺序。
from collections import OrderedDict
od = OrderedDict()
od['x'] = 1
od['y'] = 2
od['z'] = 3
for item in od:
print(item) # x y z
Counter
计数器,可理解为属性默认值为0的dict。
from collections import Counter
c = Counter()
c['x'] # 0
c['x'] = 'x'
c['x'] # x
base64
base64编码,把bytes用ascii编码的一种常见方法。
import base64
base64.b64encode(b'hello') # b'aGVsbG8='
base64.b64decode(b'aGVsbG8=') # b'hello'
hashlib
常见的摘要算法,如MD5,SHA1等。
import hashlib as hash
md5 = hash.md5()
md5.update('233'.encode('utf-8'))
print(md5.hexdigest()) # e165421110ba03099a1c0393373c5b43
hmac
hmac,类似md5 + salt。
import hmac
password = b'888888'
salt = b'abc'
h = hmac.new(salt, password, digestmod='MD5')
h.hexdigest() # 519151ad14e431254ff684cf4dba2d39
itertools
import itertools
n = 0
for item in itertools.count(1):
print(item) # 1, 2 ... 10
n += 1
if n > 10:
break
n = 0
for item in itertools.cycle('ABC'):
print(item) # A, B, C, A ...
n += 1
if n > 10:
break
n = 0
for item in itertools.repeat('A'):
print(item) # A, A, A ...
n += 1
if n > 10:
break
# 组合多个可迭代对象
for item in itertools.chain('ABC', 'XYZ'):
print(item) # A, B, C, X, Y, Z
contextlib
with语句所需要的上下文管理器,可借助contextlib模块中的contextmanager使用装饰器模式实现。
from contextlib import contextmanager
@contextmanager
def withable(name):
yield name
print('end')
with withable('x') as res:
print(res) # x, end
urllib
urllib模块中的request可用于实现http-client相关功能。
from urllib import request
with request.urlopen('https://amsimple.com') as res:
data = res.read()
print('Status:', res.status, res.reason)
for k, v in res.getheaders():
print('%s: %s' % (k, v))
第三方模块
Pillow:图片处理
requests:比urllib中的request更强大
chardet:对字符串进行编码识别
psutil: 更便捷获取系统相关信息
来源:https://amsimple.com/blog/article/45.html


猜你喜欢
- 问题描述:很多网站会对用户发帖内容进行一定的检查,并自动把敏感词修改为特定的字符。技术要点:1)Python正则表达式模块re的sub()函
- 对于当前数据库的监控方式有很多,分为数据库自带、商用、开源三大类,每一种都有各自的特色;而对于 mysql 数据库由于其有很高的社区活跃度,
- 井字棋简介井字棋又称三子棋,英文名为Tic Tac Toe。具体玩法为在一个3x3的棋盘上,一个玩家用X做棋子,另一个玩家用O做棋子,谁先在
- 一、序言在分布式并发系统中,数据库与缓存数据一致性是一项富有挑战性的技术难点。本文将讨论数据库与缓存数据一致性问题,并提供通用的解决方案。假
- 1.1.1 摘要 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接、外联接和交叉联接等。如果我们想
- 一、并发访问控制实现的并发访问的控制技术是基于锁;锁分为表级锁和行级锁,MyISAM存储引擎不支持行级锁;InnoDB支持表级锁和行级锁;锁
- 1、range函数range(起始值,终点值,间隔)终点值不一定是最后一个取到的值得到的是range类的对象,最后用list转换为【】,In
- html<!--图片轮播 Start--><div class="pics-ul">
- SQL Server重置IDENTITY属性种子值-- IDENTITY重置种子DBCC CHECKIDENT(表名, RESEED, 0)
- 问题在使用MySQL数据库的时候,经常会遇到这么一个问题,就是“Can not connect to MySQL server. Too m
- 下载https://downloads.mysql.com/archives/community/下载上面的,下面的不行解压我的解压路径 E
- 简 介: 根据文档安装指南 介绍了在本机安装PaddlePaddle的步骤。关键词: PaddlePaddle,pip,安装§01 安装Pa
- 1.CephFS文件存储核心概念1.1.CephFS文件存储简介官方文档:docs.ceph.com/en/pacific/&hel
- 本文实例讲述了python中黄金分割法实现方法。分享给大家供大家参考。具体实现方法如下:''' a,b = brac
- sql的max之类的聚合函数只能针对同一列的n行运算,如果对n列运算,一般都用case 语句来判断,如果列少还比较容易写,列多了就麻烦了。-
- 2009年2月24日,Safari 4.0 beta版正式发布,Safari从它的3.2版本开始就已经支持所有的CSS选择器(包括最新的CS
- 场景报修范围取值不同时 ,区域有时需要禁用代码<el-form-item label="报修范围" prop=&q
- 前言网络上各大论坛,尤其是一些图片类型的网站上,在图片加载时均采用了一种名为懒加载的方式,具体表现为,当页面被请求时,只加载可视区域的图片,
- 文中为大家分享了三种JavaScript判断对象是否为数组的方法,1. typeof首先我们会想到的是使用typeof来检测数据类型,但是对
- 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等。这里的记录的优化技巧更适用于开发人