Python 脚本未将列表的最后一个元素记录到csv文件中
我有一个Python类(Python 脚本未将列表的最后一个元素记录到csv文件中,python,python-3.x,Python,Python 3.x,我有一个Python类(TimeTesting),里面有3个方法- TimeTest1-获取当前时间并引入1秒睡眠 TimeTest2-获取当前时间,并计算在TimeTest1中获取的时间与在函数TimeTest2中获取的时间之间的差 LogOperation将操作记录到csv文件中,文件头为IterationNumber、T1Value、T2Value和时差 我在一个循环中运行所有三个函数10次。但是最后一次迭代(即第10次迭代)没有被捕获到日志文件中。 下面是我的代码 import date
TimeTesting
),里面有3个方法-
TimeTest1
-获取当前时间并引入1秒睡眠TimeTest2
-获取当前时间,并计算在TimeTest1
中获取的时间与在函数TimeTest2
中获取的时间之间的差LogOperation
将操作记录到csv文件中,文件头为IterationNumber
、T1Value
、T2Value
和时差
import datetime
from datetime import timedelta
import time
import csv
import collections
MyVar1 = range(1,11)
DataList = []
class TimeTesting:
def TimeTest1(self):
self.T1 = datetime.datetime.now()
time.sleep(1)
self.LogFileHeader = ['IterationNumber', 'T1Value', 'T2Value', 'TimeDifference']
print('TimeTest1 function called')
def TimeTest2(self):
self.T2 = datetime.datetime.now()
self.TimeDiff = self.T2 - self.T1
print('Timetest2 function called')
#Log operation function
def LogOperation(self, Var1):
with open('LogFile.csv', 'w') as LogList:
write = csv.writer(LogList, delimiter = "|", lineterminator = "\n")
#Extracting the header from the log file
with open('LogFile.csv', 'r') as ReadLogFile:
reader = csv.DictReader(ReadLogFile)
fieldnames = reader.fieldnames
FileHeaderStringFormat = str(fieldnames)
#Converting the header from the TimeTest1 function
TempResult1 = str(self.LogFileHeader)
LogHeaderStringFormat = TempResult1.replace("', '", "|")
#Comparing FileHeaderStringFormat and LogHeaderStringFormat
a = set(FileHeaderStringFormat)
b = set(LogHeaderStringFormat)
if collections.Counter(a) == collections.Counter(b):
write.writerows(DataList)
DataList.append((Var1, self.T1, self.T2, self.TimeDiff))
else:
write.writerow(self.LogFileHeader)
write.writerows(DataList)
DataList.append((Var1, self.T1, self.T2, self.TimeDiff))
ob = TimeTesting()
for item in MyVar1:
ob.TimeTest1()
ob.TimeTest2()
ob.LogOperation(item)
下面是正在生成的日志文件
这些行
write.writerow(self.LogFileHeader)
write.writerows(DataList)
DataList.append((Var1, self.T1, self.T2, self.TimeDiff))
如果你把它们改写成
DataList.append((Var1, self.T1, self.T2, self.TimeDiff))
write.writerow(self.LogFileHeader)
write.writerows(DataList)
写完行后,您正在添加列表。Gosh!我错过了细节。多谢。