当文件添加到文件夹后是否可以运行 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)