举例讲解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 相关文章推荐
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
python机器学习之神经网络(三)
Dec 20 Python
Python3结合Dlib实现人脸识别和剪切
Jan 24 Python
flask-socketio实现WebSocket的方法
Jul 31 Python
python用pandas数据加载、存储与文件格式的实例
Dec 07 Python
三步实现Django Paginator分页的方法
Jun 11 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
python3使用GUI统计代码量
Sep 18 Python
python实现WebSocket服务端过程解析
Oct 18 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
Python使用qrcode二维码库生成二维码方法详解
Feb 17 Python
在spyder IPython console中,运行代码加入参数的实例
Apr 20 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
基于mysql的论坛(5)
2006/10/09 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
对于this和$(this)的个人理解
2013/09/08 Javascript
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
jQuery中的deferred对象和extend方法详解
2017/05/08 jQuery
react-native之ART绘图方法详解
2017/08/08 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
python去掉字符串中重复字符的方法
2014/02/27 Python
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
简单介绍Python中的round()方法
2015/05/15 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
介绍一下Ruby的多线程处理
2013/02/01 面试题
日语专业个人的求职信
2013/12/03 职场文书
美食节策划方案
2014/05/26 职场文书
求职教师自荐书
2014/06/19 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
超级礼物观后感
2015/06/15 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
如何使用PyCharm及常用配置详解
2021/06/03 Python
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python
POST提交数据常见的四种方式
2022/01/18 HTML / CSS