1

我想连续轮询一个文件夹以查找任何新文件,假设每 1 小时一次,每当找到新文件时,它都会复制到特定位置。我找到了查找最新文件复制到另一个位置的代码。如何合并这两者以获得上述预期结果?这也可能会有所帮助如何获取最新文件

4

3 回答 3

1

对于轮询,最简单的解决方案是time.sleep(n)休眠n几秒钟。你的代码看起来像这样,然后:

import time.sleep as sleep
import sys

try:
    while True:
        # code to find the latest file

        # code to copy it to another location

        sleep(3600)
except KeyboardInterrupt:
    print("Quitting the program.")
except:
    print("Unexpected error: "+sys.exc_info()[0])
    raise

(因为这个循环可以永远运行,你绝对应该将它包装在try/except块中以捕获键盘中断和其他错误。)当然,如果你只打算在 *nix 平台上,Cron 作业是一个非常好的选择,但是这提供了平台独立性。

于 2013-07-23T19:25:08.190 回答
0

它的周期性表明您可以为此使用 cron 作业。您可以设置一个 cron 作业以每小时运行一次 python 脚本。然后是处理文件复制的脚本。那就是如果你在一台 Unix 机器上

crontab -e // this will open your crontab file, then add
0 * * * * /path/to/your/script.py

以上将每小时运行 0 分钟

于 2013-07-23T19:03:31.753 回答
0

如果你想在同一个脚本中将它与更多任务结合起来,睡眠不是一个选项,在这种情况下你可以这样:

import time
interval = 3600
lasttime = time.time()

# This is supposed to run repeatedly inside your main loop
now = time.time()
if ((lasttime - now)>interval):
  lasttime = now
  doTask()
于 2017-10-11T11:14:37.153 回答