等待文件出现并消失?

时间:2014-12-23 04:17:38

标签: python ruby file

我正在使用chromedriver下载文件。它创造了一个'crcdownload'文件,然后将其转换为文件。

我使用以下代码在ruby中执行了此操作。但不确定如何在Python中创建wait_for_download等效项。另一个要求是,如果下载时间超过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模块最适合这种情况?监视某个目录,然后在某个事件发生超时时更新,以便它不会无限期地阻塞?

1 个答案:

答案 0 :(得分:3)

你的睡眠方式有效,尽管有更好的方法可以提高效率。

更好的方法是使用文件系统监控功能:

Ruby和Python都有跨平台工作的工具,并使用本机文件系统的监控和通知,并且是非阻塞的。

  • 一个这样的Ruby gem是Listen

  • 一个这样的Python包是Watchdog