Как определить время изменения файла / день? - PullRequest
0 голосов
/ 10 июля 2019

Мой сторожевой 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()

Ранее, сторожевой таймер запускал выполнение кода после обнаружения сохранения / изменения / создания файла.Сторожевой таймер просматривает несколько файлов, расположенных в нескольких папках.

1 Ответ

0 голосов
/ 10 июля 2019

если вы хотите получить дату / время изменения, вы можете использовать этот код

import time
from datetime import datetime

modTime = os.path.getmtime("filename")
datetime.fromtimestamp(modTime).strftime('%Y-%m-%d H:%M:%S')

idk, что именно вы хотите сделать в своем коде

...