Numpy, Pandas 数据处理
Scipy 科学计算
Matplotlib 可视化
Scikit Learn 机器学习
Keras 深度学习模型
jieba 分词
Gensim 主题(包含了诸如word2vec之类的模型)
requests, bs4 网络爬虫
bottle 网站(单文件版的迷你框架)
multiprocessing 并行
tqdm 进度条 for i in tqdm(range(1000)): sleep(0.01)
retry 重试,@retry()
#backoff=1, jitter=0, , logger=retry.logging
@retry.retry(exceptions=Exception, tries=5, delay=5, backoff=1, max_delay=10) #定义一个重试修饰器,默认重试一次
def retry(num_retries=1, delay=2, random_sec_max=3):
#用来接收函数
import time
import numpy as np
def wrapper(func):
#用来接收函数的参数
def wrapper(*args,**kwargs):
#为了方便看抛出什么错误定义一个错误变量
#last_exception =None
#循环执行包装的函数
for _ in range(num_retries):
try:
#如果没有错误就返回包装的函数,这样跳出循环
return func(*args, **kwargs)
except Exception as err:
#捕捉到错误不要return,不然就不会循环了
#last_exception = e
#np.random.randint(0,random_sec_max+1,size=10)
time.sleep(delay + np.random.random()*random_sec_max)
print(err)
else:
#如果要看抛出错误就可以抛出
# raise last_exception
raise 'ERROR: 超过retry指定执行次数!!'
print('未执行参数为:', *args, **kwargs)
return wrapper
return wrapper
logging 日志
timeit 小段代码执行时间