对于程序的一个重要部分(在我的例子中是一个循环),延迟键盘中断的方法是什么。
我想下载(或保存)许多文件,如果需要太长时间,我想完成程序,当最近的文件已经下载。
我需要将信号模块用作in the answer for Capture keyboardinterrupt in Python without try-except?我可以用信号处理程序将全局变量设置为True吗?如果为True,则中断循环吗?
原始周期为:

for file_ in files_to_download:
    urllib.urlretrieve("".join(baseurl, file_), os.path.join(".", file_))

最佳答案

可能有如下情况:

# at module level (not inside class or function)
finish = False
def signal_handler(signal, frame):
    global finish
    finish = True

signal.signal(signal.SIGINT, signal_handler)

# wherever you have your file downloading code (same module)
for file_ in files_to_download:
    if finish:
        break
    urllib.urlretrieve("".join(baseurl, file_), os.path.join(".", file_))

关于python - 延迟Python中的键盘中断以获取程序的重要部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13199413/

10-13 05:01