举例讲解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支持断点续传的多线程下载示例
Jan 16 Python
Python中下划线的使用方法
Mar 27 Python
Python中的多行注释文档编写风格汇总
Jun 16 Python
selenium+python实现自动化登录的方法
Sep 04 Python
Python 读写文件的操作代码
Sep 20 Python
python实现代码统计程序
Sep 19 Python
python 实现按对象传值
Dec 26 Python
Python插入Elasticsearch操作方法解析
Jan 19 Python
如何使用repr调试python程序
Feb 28 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
Django中如何用xlwt生成表格的方法步骤
Jan 31 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
动态新闻发布的实现及其技巧
2006/10/09 PHP
phpinfo 系统查看参数函数代码
2009/06/05 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
jquery 指南/入门基础
2007/11/30 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
JS删除数组里的某个元素方法
2018/02/03 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
深入分析python 排序
2020/08/24 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
Collection和Collections的区别
2016/05/02 面试题
小学教师师德感言
2014/02/10 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
《四季》教学反思
2014/04/08 职场文书
新手上路标语
2014/06/20 职场文书
2014年安全员工作总结
2014/11/13 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers
小程序实现侧滑删除功能
2022/06/25 Javascript