举例讲解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中转换角度为弧度的radians()方法
May 18 Python
Python实现计算最小编辑距离
Mar 17 Python
Python数据分析库pandas基本操作方法
Apr 08 Python
Python函数中参数是传递值还是引用详解
Jul 02 Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 Python
python动态文本进度条的实例代码
Jan 22 Python
Python3连接Mysql8.0遇到的问题及处理步骤
Feb 17 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
Mar 19 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
OpenCV 之按位运算举例解析
Jun 19 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 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
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
建筑个人求职信范文
2014/01/25 职场文书
实习协议书范本
2014/04/22 职场文书
普通党员对照检查材料
2014/09/24 职场文书
四风对照检查材料范文
2014/09/27 职场文书
青年教师个人总结
2015/02/11 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫