举例讲解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打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
python使用urlparse分析网址中域名的方法
Apr 15 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
Python如何判断数独是否合法
Sep 08 Python
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
python构建自定义回调函数详解
Jun 20 Python
python交互式图形编程实例(一)
Nov 17 Python
淘宝秒杀python脚本 扫码登录版
Sep 19 Python
Python 实现一个手机号码获取妹子名字的功能
Sep 25 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
使用TensorBoard进行超参数优化的实现
Jul 06 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 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
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
JavaScript编写九九乘法表(两种任选)
2017/02/04 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
python中的错误处理
2016/04/10 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
浅析python中while循环和for循环
2019/11/19 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
谈谈python垃圾回收机制
2020/09/27 Python
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
中学生校园广播稿
2014/01/16 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
2014光棍节单身联谊活动策划书
2014/10/10 职场文书
干部培训工作总结2015
2015/05/25 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
pyqt5蒙版遮罩mask,setmask的使用
2021/06/11 Python
图文详解matlab原始处理图像几何变换
2021/07/09 Python