Python:写入文件 - >文件为空

时间:2016-12-07 16:11:15

标签: python

在脚本中数据的写法如下:

result = open("c:/filename.csv", "w")
result.write("\nTC-"+str(TC_index))

.csv文件在while(1)循环中填充数据。 我在Eclipse中运行脚本,然后按下停止按钮退出。 不幸的是,大多数情况下,当我打开文件时,它完全是空的。

有没有办法解决这个问题?

1 个答案:

答案 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)