分类 Python 中的文章

一次request线程卡死排查

线程下载nginx静态文件内容,写的逻辑是只有下载完毕才会退出,否则就无限重试,用的是requests 流下载,每个线程负责一个zip包的下载 程序运行几天后发现有的线程在下载过程中卡死,文件没有下载好,线程也没有退出,就hang住了 程序发现这个问题后,我在每一次调用线程去下载文件时……

阅读全文

python process 使用

创建进程 方式一:直接继承Process类 from multiprocessing import Process p = Process(target=fun, name='...',args=(param,), kwargs={...}, daemon=bool) p.start() p.join() print('p子进程执行完才到我了') daemon 表示守护进程,当为子进程上设置为True时,主进程结束(这里的结束指代码级的结束, 如果为False,会一直等到子进程结束,父进程才结束),会发送SIGTERM(即相当于kil……

阅读全文

pandas resample

pandas 重采样参数 resample(self, rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention='start', kind=None, loffset=None, limit=None, base=0, on=None, level=None) 例子 series.resample('3T').sum() rule effect B 工作日频率 C 定制营业日频率(实验) D 日历日频率 W 每周一次的频率 M 月末频率 BM 业务月末频度 CBM 定制业务月底频度 MS 月启动频率 BMS 业务月开始频率 CBMS 自定义业务月启动频率 Q 四分之一端频率 BQ 业务季度末频率 QS 四分之一起动频率 BQS 季度开始频率 A 年末频率……

阅读全文

pandas 绘制bloomfilter 错误冲突曲线

利用pandas绘制bloomfilter的概率曲线 字母 含义 m bit数组的宽度(bit数) n 待测key的数量 k 使用的hash函数的个数 f False Positive的比率 Bloom Filter公式: f = (1 – e-kn/m)k import numpy as np import pandas as pd import matplotlib.pyplot as plt import math e = math.exp(1) plt.ylabel('error probability') plt.xlabel('number of hashfunc') k=range(1,9,1) for i in range(1,31,5): f=list(map(lambda k:(1-e**(-k*i/100))**k,k)) plt.plot(k,f,'-o',linewidth=1,markersize=3) # 设置线标 plt.legend(list(map(lambda x:f'{x}%',range(1,31,5)))) plt.show()……

阅读全文

python wrapper 装饰器

装饰器的@是一个语法糖,调用被装饰的函数时相当于以下等式关系 装饰器不带参数:func() = 装饰器名(func)() 装饰器带参数:func() = time_count(‘参数’)(func)() 函数实现装饰器: from functools import wraps def time_count(参数): def test(fun): @wraps(fun) def wrapper(*args,……

阅读全文

python 迭代器

网上有很多迭代器与生成器的介绍,此处不啰嗦,简单概括一下。 迭代器即实现了 __iter__ 与 next() 迭代器可以通过iter(可迭代对象)创建 迭代器本质是在不停地产生新的对象以此节约内存 生成器是一个包含yield关键字的函数调用后的对象(是一种迭代器) 思考:既然迭代器是不停地生产一个对象,那iter()……

阅读全文