举例讲解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操作CouchDB的方法
Oct 08 Python
python网络编程之文件下载实例分析
May 20 Python
Python在Console下显示文本进度条的方法
Feb 14 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
基于Django contrib Comments 评论模块(详解)
Dec 08 Python
python读取和保存图片5种方法对比
Sep 12 Python
对Python3 pyc 文件的使用详解
Feb 16 Python
Python3实现从排序数组中删除重复项算法分析
Apr 03 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
python自动化测试之如何解析excel文件
Jun 27 Python
Pytorch to(device)用法
Jan 08 Python
Python基础知识之变量的详解
Apr 14 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
PHP的类 功能齐全的发送邮件类
2006/10/09 PHP
php图片上传类 附调用方法
2016/05/15 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
php监测数据是否成功插入到Mysql数据库的方法
2016/11/25 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
用JavaScript实现贪吃蛇游戏
2020/10/23 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
[09:37]DOTA2卡尔工作室 英雄介绍圣堂刺客篇
2013/06/13 DOTA
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
使用Python3编写抓取网页和只抓网页图片的脚本
2015/08/20 Python
python表格存取的方法
2018/03/07 Python
pandas 层次化索引的实现方法
2019/07/06 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
公务员职务工作的自我评价
2013/11/01 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
入股协议书范本
2014/04/14 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
史上最牛辞职信
2015/05/13 职场文书
歌舞青春观后感
2015/06/10 职场文书
Python实现天气查询软件
2021/06/07 Python
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript