queue模塊
這個模塊在python2.x中是import Queue
,注意Q是大寫,而到了Python3.x則變成了import queue
.
一般用在多線程共享下,防止多線程共享時數據結構出錯。
import queue
q = queue.Queue()
# 向隊列裏存數據
q.put(1)
q.put('a')
q.put('b')
# 從隊列中取出數據,注意取出的順序
q.get()
1
q.get()
'a'
q.get()
'b'
# 如果當前序列爲空,程序會停住等待,添加參數timeout=1,意味着如果1秒內沒有數據就會拋出一個異常Empty
q.get(timeout=1)
---------------------------------------------------------------------------
Empty Traceback (most recent call last)
<ipython-input-8-8e2a1178484a> in <module>()
1 # 如果當前序列爲空,程序會停住等待,添加參數timeout=1,意味着如果1秒內沒有數據就會拋出一個異常Empty
----> 2 q.get(timeout=1)
D:\Anaconda3\lib\queue.py in get(self, block, timeout)
170 remaining = endtime - time()
171 if remaining <= 0.0:
--> 172 raise Empty
173 self.not_empty.wait(remaining)
174 item = self._get()
Empty:
sys模塊
sys模塊用於處理和系統相關的事情
import sys
# 當前運行環境
sys.argv
#退出python程序
sys.exit(0)
['D:\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py',
'-f',
'C:\\Users\\Simon\\AppData\\Roaming\\jupyter\\runtime\\kernel-e54c089f-9df4-49d7-bf6f-898a13f949ff.json']
os模塊
操作系統相關模塊
import os
# 當前工作目錄
os.getcwd()
'C:\\Users\\Simon\\work'
time模塊
時間相關
import time
#某段代碼運行的時間
start = time.time()
for i in range(999):
for j in range(999):
pass
end = time.time()
process_time = end - start
print(process_time)
0.04385638236999512
# 暫時中斷程序
time.sleep(3) #暫停3秒
datetime模塊
處理日期相關
import datetime
#創建日期,只能輸入年、月、日,不能輸入分鐘,秒
d = datetime.date(2019,1,1)
print(d)
#今天
today = datetime.datetime.today()
print(today)
2019-01-01
2019-05-16 11:24:21.137536
collections模塊
定義了一些數據集合類,例如OrderedDict
、defaultdict
import collections
#普通的字典沒有順序
d = {}
d['a'] = 1
d['f'] = 0
d['e'] = 4
d['b'] = 2
d['c'] = 3
#如果要字典按照key值排序
sorted(d)
# 輸出:['a', 'b', 'c', 'e', 'f']
#如果要字典按照value值排序
sorted(d.items(), key=lambda x:x[1])
#輸出:[('f', 0), ('a', 1), ('b', 2), ('c', 3), ('e', 4)]
#OrderedDict,顧名思義有序字典
d1 = collections.OrderedDict()
d1['a'] = 1
d1['b'] = 2
#defaultdict,當選取的key值不存在時,返回一個空列表
d2 = collections.defaultdict(list)
d2['a']