举例讲解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的randrange()方法使用教程
May 15 Python
Python-嵌套列表list的全面解析
Jun 08 Python
Python正规则表达式学习指南
Aug 02 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
Aug 01 Python
python实现图片识别汽车功能
Nov 30 Python
python 监听salt job状态,并任务数据推送到redis中的方法
Jan 14 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
Python中zip函数如何使用
Jun 04 Python
关于Kotlin中SAM转换的那些事
Sep 15 Python
Python离线安装各种库及pip的方法
Nov 28 Python
python实现定时发送邮件
Dec 23 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 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版(5)
2006/10/09 PHP
PHP 图片上传实现代码 带详细注释
2010/04/29 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
2018/06/19 PHP
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
Python脚本后台运行的几种方式
2015/03/09 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
2015/09/27 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
Python元组操作实例分析【创建、赋值、更新、删除等】
2017/07/24 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
Farnell德国:电子元器件供应商
2018/07/10 全球购物
国际政治个人自荐信范文
2013/11/26 职场文书
毕业评语大全
2014/05/04 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
2014年国庆节广播稿
2014/09/19 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
业务员管理制度范本
2015/08/06 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL
Python turtle编写简单的球类小游戏
2022/03/31 Python
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL