1. 程式人生 > 實用技巧 >Python之內建模組(datetime與collections)

Python之內建模組(datetime與collections)

獲取當前時間 及指定時間

# from datetime import datetime#呼叫處理日期與時間的標準庫
# now = datetime.now()#獲取當前時間
# print(now)
# import time
# ww = time.time()#以時間戳形式獲取時間
# print(ww)
# from datetime import datetime
# dt = datetime(2011,1,12,12,0)#獲取指定時間
# print(dt)

datetime與timestamp相互轉換

把1970年1月1日 00:00:00 UTC+00:00時區的時刻稱為epoch time,記為0

(1970年以前的時間timestamp為負數),當前時間就是相對於epoch time的秒數,稱為timestamp,即時間戳。

# from datetime import datetime
# dt = datetime(2011,1,12,12,0)#獲取指定時間
# print(dt)
# dt=dt.timestamp()#將時間格式轉為時間戳格式
# print(dt)
# dt=datetime.fromtimestamp(dt)#將時間戳格式轉為時間格式
# print(dt)

timestamp是一個浮點數,整數位表示秒

本地時間與UTC標準時區時間

# from  datetime import datetime
# t=1294804800.0 # dt=datetime.fromtimestamp(t)#本地時間 # print(dt) # dr=datetime.utcfromtimestamp(t)#UTC時間 # print(dr)

datetime與str之間的相互轉換

# from datetime import datetime
# dt= datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')#字串轉換為時間格式
# print(dt)
# print(type(dt))
# mm= dt.strftime('%Y-%m-%d %H:%M:%S')#時間格式轉換為字串
# print(mm) # print(type(mm))

時間的加減

# from datetime import datetime,timedelta
# now=datetime.now()#顯示當前時間
# print(now)
# cc=now + timedelta(hours=10)#當前時間加上10個小時
# print(cc)
# bb=now + timedelta(days=3)#當前時間加上3天
# print(bb)

collections

collections是Python內建的一個集合模組,提供了許多有用的集合類。

namedtuple

# from collections import namedtuple
# Point = namedtuple('Point',['x','y'])#定義一個名為Point元組,是一個座標
# p=Point(2,3)#為元組新增座標
# print(p.x)#呼叫x
# print(p.y)#呼叫y

deque

deque是為了高效實現插入和刪除操作的雙向列表

# from collections import deque
# q= deque(['a','b','c'])
# print(q)
# q.append('x')#在q中末尾新增一個元素
# q.appendleft('y')#在q中第一位新增一個元素
# print(q)
# q.pop()#在q中末尾刪除一個元素
# q.popleft()#在q中第一位刪除一個元素
# print(q)

defaultdict

# from collections import defaultdict
# dd= defaultdict(lambda :'N/A')#當建立字典時,如果key不存在時返回一個預設值
# dd['key1']='abc'
# dd['key2']
# print(dd)

OrderedDict

# from collections import OrderedDict
# d=dict([('a',1),('d',3),('c',2),('b',8)])
# print(d)
# od = OrderedDict([('a',1),('d',3),('c',2),('b',8)])
# print(od)
# 
# od= OrderedDict()
# od['a']=1
# od['b']=4
# od['x']=3
# print(list(od.values()))

OrderedDict的Key會按照插入的順序排列,不是Key本身排序。

ChainMap

# from collections import ChainMap
# import os,argparse
# 構造預設引數
# defaults={
#     'color':'red',
#     'user':'guest'
# }
# 構造命令列引數
# parser =argparse.ArgumentParser()
# parser.add_argument('-u','--user')
# parser.add_argument('-c','--color')
# name =parser.parse_args()
# command ={k:v for k,v in vars(name).items() if v}
# 組合成ChainMap
# combined =ChainMap(command,os.environ,defaults)
#列印引數
# print('color=%s' % combined['color'])
# print('user=%s' % combined['user'])

Counter 計數器

# from collections import Counter
# c=Counter()
# for ch in 'a;ldkq,kf,falfm':
#     c[ch]=c[ch]+1
# print(c)