Python常用模組

2021-08-17 17:25:39 字數 3148 閱讀 6354

日期時間類,主要熟悉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

可用於表示簡單唯讀物件。

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

雙向佇列。

from collections import deque

q = deque(['a', 'b', 'c'])

q.pop() # x

q.popleft() # a

相對於dict,訪問不存在的屬性時,會返回lambda表達的返回值。

from collections import defaultdict

dd = defaultdict(lambda : none)

dd['x'] = 1

dd['x'] # 1

print(dd['y']) # none

有序字典,可以保持字典按屬性插入的先後順序。

from collections import ordereddict

od = ordereddict()

od['x'] = 1

od['y'] = 2

od['z'] = 3

for item in od:

print(item) # x y z

計數器,可理解為屬性預設值為0的dict。

from collections import counter

c = counter()

c['x'] # 0

c['x'] = 'x'

c['x'] # x

base64編碼,把bytes用ascii編碼的一種常見方法。

import base64

base64.b64encode(b'hello') # b'agvsbg8='

base64.b64decode(b'agvsbg8=') # b'hello'

常見的摘要演算法,如md5,sha1等。

import hashlib as hash

md5 = hash.md5()

md5.update('233'.encode('utf-8'))

print(md5.hexdigest()) # e165421110ba03099a1c0393373c5b43

hmac,類似md5 + salt。

import hmac

password = b'888888'

salt = b'abc'

h = hmac.new(salt, password, digestmod='md5')

h.hexdigest() # 519151ad14e431254ff684cf4dba2d39

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

with語句所需要的上下文管理器,可借助contextlib模組中的contextmanager使用裝飾器模式實現。

from contextlib import contextmanager

@contextmanager

defwithable

(name):

yield name

print('end')

with withable('x') as res:

print(res) # x, end

urllib模組中的request可用於實現http-client相關功能。

from urllib import request

with request.urlopen('') as res:

data = res.read()

print('status:', res.status, res.reason)

for k, v in res.getheaders():

print('%s: %s' % (k, v))

部落格原文

python 常用模組

1.告訴直譯器 找模組 import sysunix要絕度路徑 只有第一次匯入執行。name main 2.當做包,必須包含乙個命名為 init py的檔案 模組 3.dir看模組裡有什麼 下劃線開始,不是給模組外部用的。過濾 import copy n for n in dir copy if n...

python常用模組

logging 日誌是我們排查問題的關鍵利器,寫好日誌記錄,當我們發生問題時,可以快速定位 範圍進行修改 logging將日誌列印到螢幕,日誌級別大小關係為 critical error warning info debug notset,當然也可以自己定義日誌級別 預設logging預設的日誌級別...

python常用模組

collections提供了幾個便於使用的資料型別。1 namedtuple 這個資料型別生成可以使用呼叫屬性的方法來訪問元素內容的元祖 import collections cc collections.namedtuple sha x y get cc 1,2 print get.x,get.y...