pandas写入不同的时间序列到Excel指定列
在接口测试中我们经常遇到请求参数包括两组不同时间的问题,要保证每次的时间序列的唯一时才不会导致订单号重复,从而达到预期批量的效果。当没有捷径的时候我们可以定义多个时间来获取,但是这种方法需要每次创建多个时间序列,比较繁琐。针对这个问题我研究了一个万能的方法,可以解决这个问题。
不得不说Python里面的方法是很强大的,只有遇到问题的时候才能激发出你解决问题的欲望,不断挖掘出适合的方法,适合的就是正确的。
只有不断尝试不断失败,才能总结出丰富的经验!
废话一堆了,直接上代码....
安装读写Excel的插件:
pandas
openpyxl
第一步:创建一个生成时间的公共方法:
def getTimes(waitetime): time.sleep(waitetime) now=time.strftime('%Y%m%d%H%M%S') return now
解释一下:方法里面的参数waitetime,是我们写入时间的个数
第二步:创建写入时间的方法
def writeDataToExcelColumn(file,num): print('正在写入时间,请等待.....') wb = openpyxl.load_workbook(file) a = pd.date_range(start=getTimes(num), periods=num, freq='s') b = pd.date_range(start=getTimes(num), periods=num, freq='s') timer1 = a.strftime('%Y%m%d%H%M%S') timer2 = b.strftime('%Y%m%d%H%M%S') wdata = list(timer1) wdata2 = list(timer2) sheet1 = wb.worksheets[0] for i in range(len(wdata)): sheet1.cell(i+2,1).value=wdata[i] for j in range(len(wdata2)): sheet1.cell(j + 2, 2).value = wdata2[j] wb.save(file) print('写入时间完成')
解释:pandas.date_range()这个函数主要是返回固定频率的时间索引,参数有很多,只用适合的方法。periods-生成的个数,freq-按小时、分钟、秒生成。freq=‘s’ 表示每秒生成一个时间序列。python学习的资料有很多,可以自行度娘!
最后,来看下效果: