举例讲解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 10 Python
深入理解python对json的操作总结
Jan 05 Python
Collatz 序列、逗号代码、字符图网格实例
Jun 22 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
Feb 07 Python
浅析python实现scrapy定时执行爬虫
Mar 04 Python
Python爬虫工程师面试问题总结
Mar 22 Python
解决pycharm remote deployment 配置的问题
Jun 27 Python
Python对接六大主流数据库(只需三步)
Jul 31 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
利用Python自动化操作AutoCAD的实现
Apr 01 Python
利用Python脚本写端口扫描器socket,python-nmap
Jul 23 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 UBB 解析实现代码
2011/11/27 PHP
PHP优于Node.js的五大理由分享
2012/09/15 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
2015/11/07 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
浅谈mint-ui 填坑之路
2017/11/06 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
2018/03/20 jQuery
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
[01:00:25]NB vs Secret 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
Python使用minidom读写xml的方法
2015/06/03 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
班长自荐书范文
2014/02/11 职场文书
工程造价专业大学生职业规划范文
2014/03/09 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
Python连续赋值需要注意的一些问题
2021/06/03 Python