Мой сторожевой Python способен обнаруживать и запускаться при обнаружении создания файла (путем создания копии исходного файла).Однако он не может обнаружить время сохранения или изменения файла во время «последнего изменения» файла и инициировать запуск кода.Как лучше всего решить эту проблему?Какую строку кода мне не хватает?
Я могу получить код для запуска, если я - копирую и вставляю (создаю файл копии) исходный файл - изменяю и отключаю общие свойства файла рабочей книги.Ошибка начала происходить только после перемещения кода в новое сетевое местоположение
class MyHandler(PatternMatchingEventHandler):
def on_modified(self, event):
print(f'event type: {event.event_type} path : {event.src_path}')
filename = event.src_path.split("\\")[-1]
checkext = filename.split(".")[-1]
if checkext == "xlsx":
if filename[0] != "~" :
if filename in fileset:
fileset.discard(filename)
print("Duplicate modified event detected")
return
else:
fileset.add(filename)
print("\nFile modified: " + filename)
os.chdir(path)
txtfile = open("filenames.txt", "a+")
txtfile.write(event.src_path + "\n")
txtfile.close()
os.chdir(path+"\\SourceCode")
print("Generating CPK...")
subprocess.call(["python", "file.py"])
if __name__ == "__main__":
try:
path = "\\\\commonFolder\\code"
print("Watching directory...\n----------")
fileset = set()
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path=path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
fileset = set()
except KeyboardInterrupt:
observer.stop()
observer.join()
Ранее, сторожевой таймер запускал выполнение кода после обнаружения сохранения / изменения / создания файла.Сторожевой таймер просматривает несколько файлов, расположенных в нескольких папках.