举例讲解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中os和shutil模块实用方法集锦
May 13 Python
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 Python
python实现在目录中查找指定文件的方法
Nov 11 Python
Python+django实现文件下载
Jan 17 Python
Python程序中设置HTTP代理
Nov 06 Python
python导出hive数据表的schema实例代码
Jan 22 Python
Flask解决跨域的问题示例代码
Feb 12 Python
python实现flappy bird游戏
Dec 24 Python
python实现视频分帧效果
May 31 Python
pytorch 求网络模型参数实例
Dec 30 Python
Python多线程Threading、子线程与守护线程实例详解
Mar 24 Python
python 实现两个变量值进行交换的n种操作
Jun 02 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日期处理函数 整型日期格式
2011/01/12 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
理解Javascript闭包
2013/11/01 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
员工年终自我评价
2014/09/14 职场文书
大雁塔英文导游词
2015/02/10 职场文书
高中地理教学反思
2016/02/19 职场文书