Я хочу отслеживать определенные файлы внутри папки, когда когда-либо происходит смена файла, я хотел бы зафиксировать это изменение и на основе этого изменения я хочу вызвать определенные программа.Мониторинг нескольких изменений файла внутри папки, а затем запуск другой программы с использованием python
Первоначально я упоминал переполнение стека и использовал некоторый код. Когда я пытаюсь реализовать, это не может вызвать определенную программу, но она фиксирует изменение в одиночку.
Пожалуйста, найти свой код ниже:
import os, sys, time
from time import gmtime, strftime
def files_to_timestamp(path):
files = [os.path.join(path, f) for f in os.listdir(path)]
return dict ([(f, os.path.getmtime(f)) for f in files])
if __name__ == "__main__":
path_to_watch = r"Desktop\Test\"
print "Watching ", path_to_watch
before = files_to_timestamp(path_to_watch)
while 1:
time.sleep (2)
after = files_to_timestamp(path_to_watch)
added = [f for f in after.keys() if not f in before.keys()]
removed = [f for f in before.keys() if not f in after.keys()]
modified = []
for f in before.keys():
if not f in removed:
if os.path.getmtime(f) != before.get(f):
modified.append(f)
if added: print "Added: ", ", ".join(added)
if removed: print "Removed: ", ", ".join(removed)
if modified:
file1 = ", ".join(modified)
print "Updated:",strftime("%Y-%m-%d %H:%M:%S", gmtime()),file1
if file1 ==
'Desktop\Test\L90FLA_TSMC_BE_SBE_THEBE_LOT_MONTHLY_Test.eff':
execfile(r'H:\Python programs\PSBE_THEBE_New requirments.py')
elif file1 ==
'Desktop\Test\L90FLA_TSMC_BE_SBE_CARME_MONTHLY_Test.eff':
execfile(r'H:\Python programs\PSBE_CARME_New requirments.py')
elif file1 ==
'Desktop\Test\L90FLA_TSMC_BE_SBE_ELARA_LOT_MONTHLY_Test.eff':
execfile(r'H:\Python programs\PSBE_ELARA_New requirments.py')
before = after
Прошу никого, чтобы помочь мне в этом. Заранее спасибо.
Я хочу, чтобы запустить другую программу только после того, как изменение файла делается. – user3827728