对CSV文件进行操作

coding=utf-8
#导入csv包
#python版本为2.7
import csv

#保存文件夹名
logic_control=["achievement","adminBase","announcement","arean","equip","exocism","gamer","gateway","god","guild","hero","item","LB","MAIL","PVE","resource","store","TASK","trial","welfare","worldboss"]

#保存文件名
tps_name=["100_TPS.csv","200_TPS.csv","300_TPS.csv","400_TPS.csv"]

#获取文件下的所有文件
for logic in logic_control:
	for tpsname in tps_name:
	    #保存文件路径
		tps_path="C:\\Users\\wan\\Desktop\\TPS_Aggregate\\" + logic +"\\" + tpsname
		#保存期望结果路径
		avg_tps_path="C:\\Users\\wan\\Desktop\\TPS_Aggregate\\" + logic +"\\" +"AVG_"+ tpsname
		print tps_path
		print avg_tps_path
		tps=file(tps_path,"rb")
		tps_avg=file(avg_tps_path,"wb")
		#创建写的文件句柄
		writer=csv.writer(tps_avg)

		#创建读的文件句柄
		reader=csv.reader(tps)

		#创建一个数组,用来保存CSV文件的数字部分
		number=[]

		#给期望的csv添加头部信息
		writer.writerow(["Interface Name","AVG TPS","MAX TPS"])

		#获取原csv文件的每一行数据
		for line in reader:
				#获取每行数据除去第一元素外的所有元素
				for nu in line[1:len(line)-1]:
					#把list中为空的元素去掉
					if nu!='':
						#把数字元素转换为整形并加入number数组
						number.append(float(nu))
						
				#把数组number的最大值赋给bigd
				bigd=max(number)
				tps_sum=sum(number)
				
				#求平均值
				avg_tps=tps_sum/len(number)
				
				#打印接口名称和最大TPS
				print line[0],avg_tps,bigd
				
				#清空数组中的元素,还原到初始化状态
				number=[]
				
				#把接口名称和最大tps保存到期望结果的CSV文件中	
				writer.writerow([line[0],avg_tps,bigd])
				
		#关闭CSV文件,注意关闭顺序			
		tps.close()
		tps_avg.close()

'''		
#获取原CSV文件,并给文件赋予读的权限
#我尝试用相对路径出错,我用的绝对路径
tps=file('C:\\Users\\wan\\Desktop\\TPS_Aggregate\\achievement\\400_TPS.csv',"rb")

#创建一个保存期望结果的CSV文件,并给文件赋予写的权限
#我尝试用相对路径出错,我用的绝对路径
tps_avg=file('C:\\Users\\wan\\Desktop\\TPS_Aggregate\\achievement\\AVG_400_TPS.csv',"wb")

'''
		

 
 
 
 
 
 

我创建该脚本的目的是用来处理jmeter中TPS的csv文件,来获取TPS文件中每个接口的最大TPS值:

但做这个要对导出的csv文件进行处理,以下是我处理步骤:

首先,导出CSV文件并命名

其次,用excel打开,我不需要时间列,我把时间列删除,选择所有接口和tps所在的域

第三,把选取的域在新的sheet中进行粘贴,选择转置,然后保存

最后就可用脚本对该文件操作了




你可能感兴趣的:(python,csv)