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

Python:写入文件-->;文件为空,python,Python,在脚本中,数据是这样写的: result = open("c:/filename.csv", "w") result.write("\nTC-"+str(TC_index)) .csv文件在while(1)循环中填充数据。 我在Eclipse中运行脚本,然后点击停止按钮退出。 不幸的是,大多数时候,当我打开文件时,它是完全空的 是否有办法解决此问题?确保内容被刷新并写入文件,而无需关闭文件句柄: import os # ... result.write("\nTC-"+str(TC_inde

在脚本中,数据是这样写的:

result = open("c:/filename.csv", "w")
result.write("\nTC-"+str(TC_index))
.csv文件在while(1)循环中填充数据。 我在Eclipse中运行脚本,然后点击停止按钮退出。 不幸的是,大多数时候,当我打开文件时,它是完全空的


是否有办法解决此问题?

确保内容被刷新并写入文件,而无需关闭文件句柄:

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)

你的问题请具体一点。并给出如何处理文件以及是否执行其他操作的完整代码。您能提供更多代码吗?您需要关闭文件句柄,否则无法保证写入。问题是,我无法在脚本中关闭文件,因为有时收集数据需要更长时间,有时需要更少时间。。。您还需要哪些代码?我更新了一点帖子。