我正在使用 chromedriver 下载文件。它创建一个“crcdownload”文件,然后将其转换为一个文件。
我使用以下代码在 ruby 中完成了此操作。但不确定如何使 wait_for_download
在 Python 中等效。另一个附加要求是,如果下载时间超过 30 秒,或者如果 crcdownload 在该时间段内没有消失,则应该退出。
def wait_for_download
Timeout.timeout(TIMEOUT) do
sleep 0.1 until downloaded?
end
end
def downloading?
downloads.grep(/\.crdownload$/).any?
end
def downloaded?
!downloading? && downloads.any?
end
什么 python 模块最适合这种情况?监控一个目录,然后在某个事件发生超时时进行更新,这样它就不会无限期地阻塞?
最佳答案
您的 sleep 方式很有效,但还有更有效的更好方式。
更好的方法是使用文件系统监控功能:
Inotify在 Linux 上
FSEvents在 OSX 上
Directory Change Notifications在 Windows 上
Ruby 和 Python 都有跨平台工作的工具,并使用 native 文件系统的监视和通知,并且是非阻塞的。
关于python - 等待文件出现和消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27614010/