举例讲解Python常用模块
datetime
日期时间类,主要熟悉API,时区的概念与语言无关。
fromdatetimeimportdatetimeasdt
dt.utcnow()#系统UTC时间
dt.now()#系统当前时间
dt(2018,3,27,14,30)#获得2018-3-2714:30对应的datetime对象
dt.now().timestamp()#秒数1522133962.527885
dt.fromtimestamp(1522133962.527885)#从秒到datetime对象
dt.strptime('2015-6-118:19:59','%Y-%m-%d%H:%M:%S')#string转datetime对象
dt.now().strftime('%a,%b%d%H:%M')#datetime转string
collections
namedtuple
可用于表示简单只读对象。
fromcollectionsimportnamedtuple
Point=namedtuple('Point',['x','y','z'])
p=Point(1,1,1)
p.x#1
p.z#1
p.x=2#Error
deque
双向队列。
fromcollectionsimportdeque
q=deque(['a','b','c'])
q.append('x')
q.pop()#x
q.append('u')
q.popleft()#a
defaultdict
相对于dict,访问不存在的属性时,会返回lambda表达的返回值。
fromcollectionsimportdefaultdict dd=defaultdict(lambda:None) dd['x']=1 dd['x']#1 print(dd['y'])#None
OrderedDict
有序字典,可以保持字典按属性插入的先后顺序。
fromcollectionsimportOrderedDict od=OrderedDict() od['x']=1 od['y']=2 od['z']=3 foriteminod: print(item)#xyz
Counter
计数器,可理解为属性默认值为0的dict。
fromcollectionsimportCounter c=Counter() c['x']#0 c['x']='x' c['x']#x
base64
base64编码,把bytes用ascii编码的一种常见方法。
importbase64 base64.b64encode(b'hello')#b'aGVsbG8=' base64.b64decode(b'aGVsbG8=')#b'hello'
hashlib
常见的摘要算法,如MD5,SHA1等。
importhashlibashash
md5=hash.md5()
md5.update('233'.encode('utf-8'))
print(md5.hexdigest())#e165421110ba03099a1c0393373c5b43
hmac
hmac,类似md5+salt。
importhmac password=b'888888' salt=b'abc' h=hmac.new(salt,password,digestmod='MD5') h.hexdigest()#519151ad14e431254ff684cf4dba2d39
itertools
importitertools
n=0
foriteminitertools.count(1):
print(item)#1,2...10
n+=1
ifn>10:
break
n=0
foriteminitertools.cycle('ABC'):
print(item)#A,B,C,A...
n+=1
ifn>10:
break
n=0
foriteminitertools.repeat('A'):
print(item)#A,A,A...
n+=1
ifn>10:
break
#组合多个可迭代对象
foriteminitertools.chain('ABC','XYZ'):
print(item)#A,B,C,X,Y,Z
contextlib
with语句所需要的上下文管理器,可借助contextlib模块中的contextmanager使用装饰器模式实现。
fromcontextlibimportcontextmanager
@contextmanager
defwithable(name):
yieldname
print('end')
withwithable('x')asres:
print(res)#x,end
urllib
urllib模块中的request可用于实现http-client相关功能。
fromurllibimportrequest
withrequest.urlopen('https://amsimple.com')asres:
data=res.read()
print('Status:',res.status,res.reason)
fork,vinres.getheaders():
print('%s:%s'%(k,v))
第三方模块
- Pillow:图片处理
- requests:比urllib中的request更强大
- chardet:对字符串进行编码识别
- psutil:更便捷获取系统相关信息
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接