举例讲解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 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
Python中最常用的操作列表的几种方法归纳
Apr 24 Python
浅谈插入排序算法在Python程序中的实现及简单改进
May 04 Python
Python中的Descriptor描述符学习教程
Jun 02 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 Python
Python3实现购物车功能
Apr 18 Python
python3.x实现发送邮件功能
May 22 Python
python可视化实现代码
Jan 15 Python
PyCharm导入python项目并配置虚拟环境的教程详解
Oct 13 Python
从多个tfrecord文件中无限读取文件的例子
Feb 17 Python
python Canny边缘检测算法的实现
Apr 24 Python
pytorch简介
Nov 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下正则来匹配dede模板标签的代码
2010/08/21 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
Yii2使用swiftmailer发送邮件的方法
2016/05/03 PHP
PHP与以太坊交互详解
2018/08/24 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
摘自启点的main.js
2008/04/20 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
jQuery自定义添加"$"与解决"$"冲突的方法
2015/01/19 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
Flask之flask-script模块使用
2018/07/26 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
python搜索包的路径的实现方法
2019/07/19 Python
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
建筑施工实习自我鉴定
2013/09/19 职场文书
青年创业培训欢迎词
2014/01/08 职场文书
实习生岗位职责
2014/04/12 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
工程索赔意向书
2014/08/30 职场文书
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs