Python成长记:Python3使用csv模块csv.writer().writerow()方式保存CSV文件产生空行解决方案

一、问题背景


项目的测试过程中,使用csv.writer().writerow()方式保存数据到csv文件中,但是check结果时发现,每写入一次都是会多一个空行,问题现象类似如下:

二、出现问题之前的源码


#!/usr/bin/python
#Author:千里之行
#Update:2020-09-04
#
#
#
#
import os
import sys
import csv
import time

def killProcessStressTest():
	with open('D:\\MemTest\\onemoreline.csv','w') as csvfile:
		writer = csv.writer(csvfile,dialect ='excel')
		writer.writerow(['time','MMSMem(KB)','MMSPid'])
		for i in range(loopNumber):
		    os.system(ipString)
		    time.sleep(3)
		    print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>StressTest LoopNumber is:" + str(i))
		    mmsMemString = os.popen('adb shell "dumpsys meminfo |grep -e \'com.android.mms \' "')
		    mmsMemStringSplit = mmsMemString.read().strip().split(' ')
		    mmsMem = mmsMemStringSplit[0]
		    mmsPid = mmsMemStringSplit[4][:-3]
		    #print("mmsMem: "+mmsMem + " ;mmsPid: " +mmsPid)
		    time.sleep(2)

		    print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())+ "MMSMem: "+mmsMem + " MMSPid: " + mmsPid )
		    #依次将关注进程的内存和Pid写入到csv文件中    
		    writer.writerow([time.strftime("%Y-%m-%d %H-%M-%S",time.localtime()),mmsMem,mmsPid])	    
		    time.sleep(5)
		csvfile.close()

if __name__ == "__main__":
    killProcessStressTest()

二、解决方式


后来通过查阅资料,问题很好的解决,只需在with语句中增加一个newline=" 的参数即可,修改前后代码对比如下:

猜你喜欢

转载自blog.csdn.net/jinhoward/article/details/108445160
今日推荐