我有一个在旧笔记本电脑上运行的程序,它不断监视 Dropbox 文件夹中是否添加了新文件。当它运行时,Python 进程在双核机器上使用了接近 50% 的 CPU,在 8 核机器上使用了大约 12%,这表明它正在使用接近 100% 的一个核心)。这会散发出很多热量。
相关的代码是:
while True:
files = dict ([(f, None) for f in os.listdir(path_to_watch)])
if len(files) > 0:
print "You have %s new file/s!" % len(files)
time.sleep(20)
在没有新文件的情况下,当然大部分时间都应该花在time.sleep()
等待上,我不会认为这会占用大量 CPU 资源——而这里的答案似乎说不应该这样。
所以两个问题:
1)既然time.sleep()
不应该如此占用CPU,这里发生了什么?
2) 是否有另一种方法可以监视文件夹中运行更酷的更改?