Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我终止python进程时,输出文件为空_Python_Linux_File - Fatal编程技术网

当我终止python进程时,输出文件为空

当我终止python进程时,输出文件为空,python,linux,file,Python,Linux,File,我正在通过SSH在远程服务器上运行python脚本。脚本将创建一个新文件,并向其中写入一些数据。我在中执行此操作,而在True块中执行此操作。当我终止python进程时,我的输出文件是空的。如何将数据保存到输出文件 当我使用CTRL+C时,文件保留所有数据。但我不能使用这种组合,因为我在远程机器上运行脚本,可能会失去连接。此外,如果我停止SSH连接,我不知道这个脚本将运行多长时间 with open('out/' + filename, 'a') as f: while True:

我正在通过SSH在远程服务器上运行python脚本。脚本将创建一个新文件,并向其中写入一些数据。我在
中执行此操作,而在True
块中执行此操作。当我终止python进程时,我的输出文件是空的。如何将数据保存到输出文件

当我使用CTRL+C时,文件保留所有数据。但我不能使用这种组合,因为我在远程机器上运行脚本,可能会失去连接。此外,如果我停止SSH连接,我不知道这个脚本将运行多长时间

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

        time.sleep(10)

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

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

        time.sleep(10)

如何终止您的python脚本?请尝试使用kill-INT终止您的脚本。值得一提的是,当python接收到
Ctrl+C
(SIGTERM)时,它将为您完成这项工作。看起来像是使用了OP
kill-9
。(可能是他在网上发现的;)