尝试结束while True循环时ctrl+c不起作用

2024-06-16 17:02:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在建立一个网页刮板扫描网页的库存。 该脚本首先读取CSV文件,并导入在以前会话中已删除的项目。然后它无限地解析网页,直到我需要它停止。这是事先不知道的。为了实现这一点,我编写了一个While-True循环。在这个循环之后,它应该添加任何已被刮到现有CSV的新项目并保存它们

然而,我还没有找到一种方法来正确地退出这个无限循环而不丢失它所收集的任何数据。我已经尝试过这个话题的一切:Ending an infinite while loop但在我的情况下,它没有起作用

我在Powershell中运行我的程序,每当我尝试ctrl+c,它都不会响应ctrl+pause/break似乎有效,但它会立即停止整个脚本,而不保存任何内容

编辑:添加代码,代码运行正常,我无法退出

第二次编辑:添加了代码的最低版本

from threading import Thread

def looping():
  while True:
    try:
      print("looping")
    
    except KeyboardInterrupt:
      print("Interrupted")
      break


threads = []

for i in range(3):
  t = Thread(target=looping)
  t.start()
  threads.append(t)

for thread in threads:
    thread.join()

Tags: csv项目代码脚本true编辑网页for