Запустите скрипт Python, когда файл будет добавлен к папке?

Действительно ли возможно запустить скрипт Python, когда файл был добавлен к папке?

В моем сценарии у меня есть папка, которая содержит фильмы, и сценарий Python получает детали (имя, год, график, оценка, и т.д.) от OMDb и помещает их в файл, который использует MySQL.

Каждый раз, когда я добавляю фильм, я должен запустить скрипт Python.

Я хочу знать, возможно ли автоматически запустить скрипт Python, когда файл был добавлен к папке?

Заранее спасибо.

1
задан 3 August 2015 в 19:15

3 ответа

Рассмотрение уникальной папки, где Вы часто добавляете файлы.

  • Сборка сценарий (Python и Bash являются хорошими вариантами), что циклы для папки измеряют каждый 'n' секунды (или минуты, как часто Вы добавляете файлы?).

  • Каждый раз, когда новый файл создается, размер изменится, и сценарий должен инициировать функцию, которые ищут последний добавленный файл и получают необходимую информацию о файле, и запускает Ваш сценарий Python.

Вы могли легко интегрировать вышеупомянутые описания к своему существующему сценарию Python.

, Если у Вас есть несколько папок, Вы могли бы сделать это рекурсивным.

Сообщенный мне, если Вы не можете понять, как сделать, это и я поможет Вам.

Удачи!

3
ответ дан 7 December 2019 в 12:44

Создайте сценарий 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 запускается на каждом новом файле в папке с полным путем имени файла.

0
ответ дан 7 December 2019 в 12:44

На основе 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)
0
ответ дан 17 December 2020 в 13:59

Другие вопросы по тегам:

Похожие вопросы: