您的位置:首页 > 脚本大全 > > 正文

python 模块详解(举例讲解Python常用模块)

更多 时间:2022-01-15 01:45:04 类别:脚本大全 浏览量:1437

python 模块详解

举例讲解Python常用模块

datetime

日期时间类,主要熟悉API,时区的概念与语言无关。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 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

    可用于表示简单只读对象。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 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

    双向队列。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • from collections import deque
  • q = deque(['a', 'b', 'c'])
  • q.append('x')
  • q.pop() # x
  • q.append('u')
  • q.popleft() # a
  • defaultdict

    相对于dict,访问不存在的属性时,会返回lambda表达的返回值。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • from collections import defaultdict
  • dd = defaultdict(lambda : None)
  • dd['x'] = 1
  • dd['x'] # 1
  • print(dd['y']) # None
  • OrderedDict

    有序字典,可以保持字典按属性插入的先后顺序。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 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。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • from collections import Counter
  • c = Counter()
  • c['x'] # 0
  • c['x'] = 'x'
  • c['x'] # x
  • base64

    base64编码,把bytes用ascii编码的一种常见方法。

  • ?
  • 1
  • 2
  • 3
  • import base64
  • base64.b64encode(b'hello') # b'aGVsbG8='
  • base64.b64decode(b'aGVsbG8=') # b'hello'
  • hashlib

    常见的摘要算法,如MD5,SHA1等。

  • ?
  • 1
  • 2
  • 3
  • 4
  • import hashlib as hash
  • md5 = hash.md5()
  • md5.update('233'.encode('utf-8'))
  • print(md5.hexdigest()) # e165421110ba03099a1c0393373c5b43
  • hmac

    hmac,类似md5 + salt。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • import hmac
  • password = b'888888'
  • salt = b'abc'
  • h = hmac.new(salt, password, digestmod='MD5')
  • h.hexdigest() # 519151ad14e431254ff684cf4dba2d39
  • itertools

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 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使用装饰器模式实现。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 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相关功能。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 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: 更便捷获取系统相关信息

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。如果你想了解更多相关内容请查看下面相关链接

    原文链接:https://amsimple.com/blog/article/45.html

    您可能感兴趣