每次将文件下载到特定文件夹时触发 python 脚本
Posted
技术标签:
【中文标题】每次将文件下载到特定文件夹时触发 python 脚本【英文标题】:trigger python script everytime a file is downloaded into a specific folder 【发布时间】:2014-01-06 22:42:44 【问题描述】:我有一个特定的文件夹,我可以在其中下载某些 .zip 文件。我正在编写一个 python 脚本来自动从这个文件夹中解压缩、上传和删除文件。有没有办法在每次将 zip 文件下载到此文件夹时自动触发我的 python 脚本?
[编辑]:我在 osx 小牛队,很抱歉从一开始就没有提到这一点
【问题讨论】:
请添加有关您的操作系统的更多信息。例如,在 Linux 中,您可以每分钟运行一个命令来自动调用您的 Python 脚本。 【参考方案1】:是的,您可以使用 inotify(例如使用 pyinotify)在创建新文件时获取回调。但它在 Windows 上不可用。 可能有一个类似的 api 可用,但我不知道 那个 API 是否有 python 绑定。
【讨论】:
谢谢,但 Pinotify 在 OSX 上不可用。【参考方案2】:我能想到的最简单的方法: 让我们说每 1 分钟做一个 cronjob,它会启动一个脚本来检查有问题的目录中是否有任何新的 zip 文件。 如果找到它会触发解压缩、上传和删除。
如果你不想创建一个 cronjob,你总是可以考虑创建一个守护进程(但为什么要麻烦)
【讨论】:
【参考方案3】:由于我在 Mac OSX Mavericks 上,我最好的选择是使用 watchdog - 最流行的 Python 模块来处理这类事情。
【讨论】:
以上是关于每次将文件下载到特定文件夹时触发 python 脚本的主要内容,如果未能解决你的问题,请参考以下文章
在 python tkinter 中每次连续单击后都会触发双击事件
AppWidgetProvider - 每次对任何 AppWidget 文件进行更改时都会触发 onUpdate 吗?
每次在 Google Cloud Storage 上上传 CSV 时如何触发自动更新 Google BigQuery 数据集