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