在脚本中数据的写法如下:
result = open("c:/filename.csv", "w")
result.write("\nTC-"+str(TC_index))
.csv文件在while(1)循环中填充数据。 我在Eclipse中运行脚本,然后按下停止按钮退出。 不幸的是,大多数情况下,当我打开文件时,它完全是空的。
有没有办法解决这个问题?
答案 0 :(得分:1)
确保刷新内容并将其写入文件,而不必关闭文件句柄:
import os
# ...
result.write("\nTC-"+str(TC_index))
result.flush()
os.fsync(result)
但是,当然,如果你手动打破循环,不能保证你不会在写入和刷新之间打破它,从而无法获得最后一行。我不熟悉Eclipse停止按钮,但可能会通过引发KeyboardInterrupt
异常来停止执行。如果是这样,您可以始终捕获并明确关闭该文件。更好的是,使用with
语句,这将导致自动发生:
with open("c:/filename.csv", "w") as result:
for TC_index in range(100): # or whatever loop
result.write("\nTC-"+str(TC_index))
# flush & fsync here if still necessary (but might not be)