我正在尝试编写一个日志文件,记录循环执行之间的时间差。我对Python非常陌生,似乎我不能完全让它工作。你知道吗
这是循环:
def writeData(self):
f = open('logfile','w')
timeInMs = 0
while True:
lastTimeInMs = timeInMs
timeInMs = long(round(time.time() * 1000))
timeDifference = timeInMs - lastTimeInMs
print(timeDifference) #write to console
f.write(str(timeDifference) + "\n") #write to logfile
doc = {'foo': 'bar'}
self.db.save(doc)
它将timeDifference
打印到控制台,但是logfile
仍然是空的。但是,如果我使用绝对时间,那么写入logfile
就可以了!你知道吗
f.write(str(timeInMs) + "\n")
有人能告诉我为什么会这样以及我如何解决这个问题吗?我本以为print
和write
的行为是一样的。谢谢!你知道吗
我不确定write函数如何处理这些表达式:
f.write(str(timeDifference) + "\n")
你为什么不换成正如Khelwood在注释中指出的那样,不要忘记在while循环之外的函数末尾使用
f.close()
关闭打开的文件如果希望输出直接出现在
f.write()
调用之后的文件中,则必须在f.write()
调用之后调用f.flush()
。你知道吗虽然有人提出
f.close()
,但这并不是问题的解决办法。f.close()
在关闭文件之前有效地调用f.flush()
;但是,那太晚了,所以要在不关闭文件的情况下让写入的数据出现在文件中,请使用f.flush()
。你知道吗相关问题 更多 >
编程相关推荐