当前位置: 移动技术网 > IT编程>脚本编程>Python > 举例讲解Python常用模块

举例讲解Python常用模块

2019年03月19日  | 移动技术网IT编程  | 我要评论

高安中学校友录,跷跷板图片,事业单位工作人员年度考核个人总结

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: 更便捷获取系统相关信息

总结

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网