我有一个长期运行的 python 脚本,它定期将数据输出到我用以下内容调用的标准输出:
python script.py > output.txt
Run Code Online (Sandbox Code Playgroud)
这个脚本已经运行了一段时间,我想用Ctrl+停止它,C但不要丢失任何输出。不幸的是,当我实现该脚本时,我忘记在每行输出之后使用类似sys.stdout.flush()(之前建议的强制输出刷新的解决方案)来刷新缓冲区,因此现在调用Ctrl+C将导致我丢失所有输出。
如果想知道是否有任何方法可以与正在运行的 python 脚本(或更一般地说,正在运行的进程)交互以强制它刷新其输出缓冲区。我不是在问如何编辑和重新运行脚本以使其正确刷新 - 这个问题特别是关于与正在运行的进程进行交互(并且,在我的情况下,不会丢失当前代码执行的输出)。