举例讲解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赋值操作方法分享
Mar 23 Python
Python的高级Git库 Gittle
Sep 22 Python
详解Python中列表和元祖的使用方法
Apr 25 Python
python批量修改文件编码格式的方法
May 31 Python
基于Python开发chrome插件的方法分析
Jul 07 Python
Python异常处理知识点总结
Feb 18 Python
python实现猜数字游戏
Mar 25 Python
PyQt5事件处理之定时在控件上显示信息的代码
Mar 25 Python
浅谈Python中的模块
Jun 10 Python
Python实现一个优先级队列的方法
Jul 31 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
详解Python中如何将数据存储为json格式的文件
Nov 18 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 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
mysql总结之explain
2012/02/27 PHP
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2013/10/24 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
python协程用法实例分析
2015/06/04 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
python的flask框架难学吗
2020/07/31 Python
python 实现波浪滤镜特效
2020/12/02 Python
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
Java如何获得ResultSet的总行数
2016/09/03 面试题
工作自荐信
2013/12/11 职场文书
部队党性分析材料
2014/02/16 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
2014年生产部工作总结
2014/12/17 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书