如何在不中断文件输出的情况下手动终止Python脚本?

时间:2016-03-23 18:51:20

标签: python terminate

我对Python有点新手,所以我想这个问题有一个简单的答案。但我似乎无法在任何地方找到解决方案。

我有一个Python脚本,它不断接受来自流API的输入,并将数据保存到文件中。

我需要停止脚本修改代码的问题。如果我使用ctrl-f2,我有时会在写入输出文件的过程中捕获脚本,并且文件最终会被破坏。

是否有一种简单的方法可以手动停止Python,使其能够完成当前的代码行?

1 个答案:

答案 0 :(得分:0)

您可以捕获SIGTERMSIGINT信号并设置一个全局变量,您的脚本会定期检查它是否应该退出。这可能意味着您需要将操作分解为更小的块,以便您可以更频繁地检查退出变量

import signal

EXIT = False

def handler(signum, frame):
    global EXIT
    EXIT = True

signal.signal(signal.SIGINT, handler)


def long_running_operation():
    for i in range(1000000):
        if EXIT:
            # do cleanup or raise exception so that cleanup
            # can be done higher up.
            return
        # Normal operation.