当文件添加到文件夹时运行 python 脚本?

当文件添加到文件夹时运行 python 脚本?

当文件添加到文件夹后是否可以运行 Python 脚本?

在我的场景中,我有一个包含电影的文件夹,Python 脚本从 OMDb 获取详细信息(名称、年份、情节、评级等)并将它们放入 MySQL 使用的文件中。

每次添加电影时我都必须运行 Python 脚本。

我想知道当文件添加到文件夹时是否可以自动运行 Python 脚本?

提前致谢。

答案1

考虑一个您经常添加文件的唯一文件夹。

  • 构建一个脚本(Python 和 Bash 是不错的选择),每“n”秒(或几分钟,您多久添加一次文件?)循环一次文件夹大小。

  • 每当创建一个新文件时,其大小就会改变,并且脚本应该触发一个函数,搜索最后添加的文件并获取必要的文件信息并启动你的 Python 脚本。

您可以轻松地将上述描述集成到您现有的 Python 脚本中。

如果您有多个文件夹,您可以使其递归。

如果您不明白如何操作,请告诉我,我会帮助您。

祝你好运!

答案2

创建包装脚本watch_folder

#!/bin/bash
FILE="$1"
if [ "${FILE##*.}" = "mov" ]
then
    your_python_script "$2/$1"
fi
exit 0

使其可执行:

chmod +x watch_folder

查看你的文件夹:

inoticoming your_movie_folder path_of_watch_folder_script {} your_movie_folder \;

您的 Python 脚本将在文件夹中的每个新文件上以文件名的完整路径启动。

答案3

根据lenord's解决方案,这里是 python 脚本。

import os
import time

# define path for file
source = "path_to_folder"

while True:
    if [f for f in os.listdir(source) if not f.startswith('.')] != []:
        # Some Work
        time.sleep(5)   # Its just to wait if 'Some Work' is very small
    else:
        print('Empty')
        time.sleep(5)

相关内容