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']