我对Python有点新手,所以我想这个问题有一个简单的答案。但我似乎无法在任何地方找到解决方案。
我有一个Python脚本,它不断接受来自流API的输入,并将数据保存到文件中。
我需要停止脚本修改代码的问题。如果我使用ctrl-f2,我有时会在写入输出文件的过程中捕获脚本,并且文件最终会被破坏。
是否有一种简单的方法可以手动停止Python,使其能够完成当前的代码行?
答案 0 :(得分:0)
您可以捕获SIGTERM
或SIGINT
信号并设置一个全局变量,您的脚本会定期检查它是否应该退出。这可能意味着您需要将操作分解为更小的块,以便您可以更频繁地检查退出变量
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.