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