python 常用库

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  小段代码执行时间

posted on 2019-04-25 11:55  iUpoint  阅读(147)  评论(0编辑  收藏  举报

导航