Действительно ли возможно запустить скрипт Python, когда файл был добавлен к папке?
В моем сценарии у меня есть папка, которая содержит фильмы, и сценарий Python получает детали (имя, год, график, оценка, и т.д.) от OMDb и помещает их в файл, который использует MySQL.
Каждый раз, когда я добавляю фильм, я должен запустить скрипт Python.
Я хочу знать, возможно ли автоматически запустить скрипт Python, когда файл был добавлен к папке?
Заранее спасибо.
Рассмотрение уникальной папки, где Вы часто добавляете файлы.
Сборка сценарий (Python и Bash являются хорошими вариантами), что циклы для папки измеряют каждый 'n' секунды (или минуты, как часто Вы добавляете файлы?).
Каждый раз, когда новый файл создается, размер изменится, и сценарий должен инициировать функцию, которые ищут последний добавленный файл и получают необходимую информацию о файле, и запускает Ваш сценарий Python.
Вы могли легко интегрировать вышеупомянутые описания к своему существующему сценарию Python.
, Если у Вас есть несколько папок, Вы могли бы сделать это рекурсивным.
Сообщенный мне, если Вы не можете понять, как сделать, это и я поможет Вам.
Удачи!
Создайте сценарий 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_foldet_script> {} <your_movie_folder> \;
Ваш сценарий Python запускается на каждом новом файле в папке с полным путем имени файла.
На основе lenord
, вот скрипт 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)