1

我编写了一个运行无限循环的python脚本,每半秒检查一次目录中是否有新文件:

while True:
    files = os.listdir(path_to_dir)
    # do something
    time.sleep(0.5)

该代码在 cmd 窗口中的 Windows 10 上运行,我需要确保它永远不会停止。

A)我需要找到一种机制(或少数机制),它将在脚本可能关闭的所有可能情况下重新启动脚本(如果仅在 2 分钟后重新启动就可以了......):

  1. 如果计算机正在重新启动
  2. 如果有人关闭 cmd 窗口
  3. 如果脚本由于未处理异常或内存泄漏而意外结束(它不应该发生......)

B)我希望每周一次,主动关闭脚本并重新启动。

有任何想法吗?谢谢!!

ps我的第一个想法是python脚本只会检查新文件,调度的任务会每秒运行一次,但任务调度程序的最小间隔是1分钟。

4

1 回答 1

1

我认为这些回答了你所有的问题:

  1. 由于您的脚本在 Windows 上运行,因此您可以使用Microsoft 任务计划程序(随 Windows 一起安装)在计算机启动时启动 Python 脚本。

  2. 如果您不使用 cmd 窗口,您可以将 Python 脚本扩展名从 更改.py.pyw以在没有终端窗口的情况下运行脚本。更多关于这里的内容:执行脚本

  3. 要在发生异常后打开脚本,请查看这篇博文:How to Restart Python Script after Exception and Run it Forever

  4. 要每周重新启动一次脚本,您还可以使用答案 1 中提到的任务计划程序。我认为这篇文章可以帮助您重新启动脚本:启动和停止 python 任务

于 2019-05-01T08:07:20.963 回答