举例讲解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 20 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
使用Python正则表达式操作文本数据的方法
May 14 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
用Python画小女孩放风筝的示例
Nov 23 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
Mar 07 Python
Virtualenv 搭建 Py项目运行环境的教程详解
Jun 22 Python
Python是怎样处理json模块的
Jul 16 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 Python
解决Jupyter-notebook不弹出默认浏览器的问题
Mar 30 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
神族 Protoss 剧情介绍
2020/03/14 星际争霸
PHP MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
vuejs router history 配置到iis的方法
2018/09/20 Javascript
Python中的map、reduce和filter浅析
2014/04/26 Python
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
python实现telnet客户端的方法
2015/04/15 Python
python字符串过滤性能比较5种方法
2017/06/22 Python
Python内置函数reversed()用法分析
2018/03/20 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
如何在pycharm中安装第三方包
2020/10/27 Python
HTML5计时器小例子
2013/10/15 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
大学生最常用的自我评价
2013/12/07 职场文书
公安学专业求职信
2014/07/27 职场文书
2014乡镇党委副书记对照检查材料思想汇报
2014/10/09 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
2015年售票员工作总结
2015/04/29 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
用Python提取PDF表格的方法
2021/04/11 Python