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