举例讲解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字符串格式化输出方法分析
Apr 13 Python
python中函数总结之装饰器闭包详解
Jun 12 Python
Python实现图片滑动式验证识别方法
Nov 09 Python
python实现单链表中删除倒数第K个节点的方法
Sep 28 Python
Python获取Redis所有Key以及内容的方法
Feb 19 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
tensorflow 实现数据类型转换
Feb 17 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
基于python模拟bfs和dfs代码实例
Nov 19 Python
使用Django的JsonResponse返回数据的实现
Jan 15 Python
Python使用openpyxl批量处理数据
Jun 23 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 foreach 使用&(与运算符)引用赋值要注意的问题
2010/02/16 PHP
PHP header函数分析详解
2011/08/06 PHP
mysql数据库差异比较的PHP代码
2012/02/05 PHP
基于PHP CURL用法的深入分析
2013/06/09 PHP
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
基于php使用memcache存储session的详解
2013/06/25 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
JS按字节截取字符长度实例
2013/11/20 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
pd.DataFrame统计各列数值多少的实例
2019/12/05 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
pytorch中index_select()的用法详解
2021/01/06 Python
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
如何提高MySql的安全性
2014/06/19 面试题
简历自我评价怎么写好呢?
2014/01/04 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
征求意见函
2015/06/05 职场文书