我杀死python进程时输出文件为空

时间:2018-12-23 17:45:53

标签: python linux file

我正在通过SSH在远程服务器上运行python脚本。该脚本创建一个新文件,并向其中写入一些数据。我在while True块中完成。当我杀死python进程时,我的输出文件为空。如何将数据保存到输出文件?

当我使用 CTRL + C 时,文件将保留所有数据。但是我不能使用这种组合,因为我在远程计算机上运行脚本,并且可能会失去连接。另外,如果停止SSH连接,我会为该脚本运行多长时间感到困惑。

with open('out/' + filename, 'a') as f:
    while True:
        r = get_updates()
        f.write(r.text)

        time.sleep(10)

1 个答案:

答案 0 :(得分:1)

write仅将要写入的输出排队。操作系统完全决定何时实际写入文件。如果要确保它确实到达文件,还应该显式刷新它:

with open('out/' + filename, 'a') as f:
    while True:
        r = get_updates()
        f.write(r.text)
        f.flush()

        time.sleep(10)