举例讲解Python常用模块


Posted in Python onMarch 08, 2019

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: 更便捷获取系统相关信息

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
初学python的操作难点总结(新手必看篇)
Aug 03 Python
Python3 适合初学者学习的银行账户登录系统实例
Aug 08 Python
Python 结巴分词实现关键词抽取分析
Oct 21 Python
python实现K最近邻算法
Jan 29 Python
基于python进行桶排序与基数排序的总结
May 29 Python
python获取地震信息 微信实时推送
Jun 18 Python
python自动化测试之DDT数据驱动的实现代码
Jul 23 Python
Python使用graphviz画流程图过程解析
Mar 31 Python
使用python实现微信小程序自动签到功能
Apr 27 Python
Python 实现集合Set的示例
Dec 21 Python
python numpy中multiply与*及matul 的区别说明
May 26 Python
python re库的正则表达式入门学习教程
Mar 08 #Python
opencv与numpy的图像基本操作
Mar 08 #Python
Python脚本修改阿里云的访问控制列表的方法
Mar 08 #Python
python实现整数的二进制循环移位
Mar 08 #Python
Python3实现的反转单链表算法示例
Mar 08 #Python
Python3实现的判断回文链表算法示例
Mar 08 #Python
python字符串循环左移
Mar 08 #Python
You might like
PHP 图片上传实现代码 带详细注释
2010/04/29 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
Python 错误和异常代码详解
2018/01/29 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
flask入门之表单的实现
2018/07/18 Python
python Tkinter版学生管理系统
2019/02/20 Python
Python实现京东秒杀功能代码
2019/05/16 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
2020/07/01 Python
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
村居抓节水倡议书
2014/05/19 职场文书
安全环保标语
2014/06/09 职场文书
工作检讨书范文
2015/01/23 职场文书
西双版纳导游词
2015/02/03 职场文书
门店店长岗位职责
2015/04/14 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python