datetime
日期时间类,主要熟悉API,时区的概念与语言无关。
1
2
3
4
5
6
7
8
|
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
可用于表示简单只读对象。
1
2
3
4
5
6
|
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
双向队列。
1
2
3
4
5
6
|
from collections import deque
q = deque([ 'a' , 'b' , 'c' ])
q.append( 'x' )
q.pop() # x
q.append( 'u' )
q.popleft() # a
|
defaultdict
相对于dict,访问不存在的属性时,会返回lambda表达的返回值。
1
2
3
4
5
|
from collections import defaultdict
dd = defaultdict( lambda : None )
dd[ 'x' ] = 1
dd[ 'x' ] # 1
print (dd[ 'y' ]) # None
|
OrderedDict
有序字典,可以保持字典按属性插入的先后顺序。
1
2
3
4
5
6
7
|
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。
1
2
3
4
5
|
from collections import Counter
c = Counter()
c[ 'x' ] # 0
c[ 'x' ] = 'x'
c[ 'x' ] # x
|
base64
base64编码,把bytes用ascii编码的一种常见方法。
1
2
3
|
import base64
base64.b64encode(b 'hello' ) # b'aGVsbG8='
base64.b64decode(b 'aGVsbG8=' ) # b'hello'
|
hashlib
常见的摘要算法,如MD5,SHA1等。
1
2
3
4
|
import hashlib as hash
md5 = hash .md5()
md5.update( '233' .encode( 'utf-8' ))
print (md5.hexdigest()) # e165421110ba03099a1c0393373c5b43
|
hmac
hmac,类似md5 + salt。
1
2
3
4
5
|
import hmac
password = b '888888'
salt = b 'abc'
h = hmac.new(salt, password, digestmod = 'MD5' )
h.hexdigest() # 519151ad14e431254ff684cf4dba2d39
|
itertools
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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使用装饰器模式实现。
1
2
3
4
5
6
7
|
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相关功能。
1
2
3
4
5
6
|
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