前几天在用csv文件给jmeter做参数化时碰到了一个场景:将研发给我的5万条数据依照数量平均分成五份,再分别用jmeter跑一次流程。
按照我以往的工作方式,我大概会新建好5个文件,然后分别给这5个文件依次拷贝1万条数据。这样做既费精力又伤眼睛,相信很多人都有这种体会。这里做一个小分享。
python学习交流群;516107834
首先,理一下完成目标的思路:
从源文件中读取数据写入另一个文件中,每个文件满1万行,就换一个文件。这里我想到的两种实现方式:
1)读取数据存到列表中,将列表中数据存到文件中,每写入1万条数据便换一个文件
2)每读出一条数据便写入到新的文件中,每个文件满1万条数据就换一个文件写。
接着,开始编写代码:
1、读一条写一条:

2、每读出一条数据便写入到新的文件中,每个文件满1万条数据就换一个文件写:

运行结果如下图1,图2所示:

图1 方法一(读一行写一行)

图2 方法二(读取所有需要的数据到列表中,分批写入)
两次程序运行生成的文件如图3,图4所示:

图3 各生成5个文件

图4 每个文件写入1万条数据
由上面的结果图可以看出:第一种方式是牺牲时间换空间的方式,运行时占用内存很小,但是弊端在于需要频繁打开文件写入数据,速度较慢;第二种方式速度很快,在电脑内存资源吃紧的时候可以减少每次中转的数据量。本人电脑内存远超这些数据大小,此场景选择第二种方式,大家可根据需求选择不同的读写方式。
结束语:
很简单的几行代码,写完加调试,一共也就几分钟,回过头来看,这几行代码任然有改进的空间,比如对源文件每一行的数据进行校验。这是本人第一次在工作中主动用编程来实现自己的想法,实际上也是节约了不少的精力和时间。相信随着学习深入,我会写更多的小脚本来提升自己或其他人的工作效率。
完整代码如下:
1、方法一(读一行写一行):

2、方法二(读取所有需要的数据到列表中,分批写入):
