Watchdog Observer обрабатывает не все файлы - PullRequest
1 голос
/ 05 мая 2020

У меня есть сегмент кода, который вызывает множество функций в действие, используя наблюдателей сторожевого таймера для обнаружения изменений. Проблема в том, что с фрагментом кода ниже ТОЛЬКО файл Sales.tsv запустит процесс, если я запустил файл Service.tsv, он просто заблокируется, а затем он даже не будет обрабатывать Sales.tsv после этого, он также не возвращает сообщение «Что-то пошло не так». Файл Sales.tsv также вызовет печать («Документ найден, обработка ...»), файл Service.tsv - нет.

Я также пробовал переключаться между if, elif и еще ни одним из они тоже работают. Также безуспешно пытались изменить позиционирование и разместить продажи над сегментом service.tsv.

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

folder_to_track = '/Users/myname/Desktop/New Reports'
folder_destination = '/Users/myname/Desktop/Old Reports'


class ChangeHandler(FileSystemEventHandler):
    def on_modified(self, event):
            for filename in os.listdir(folder_to_track):
                file_exists = os.path.isfile(folder_destination + '/' + filename)
                while file_exists:
                    file_exists = os.path.isfile(folder_destination + '/' + filename)

                if os.path.splitext(filename)[-1] == '.tsv':
                    print('Document Found, processing...')

                    if filename == 'Service.tsv':
                        src = folder_to_track + '/' + filename
                        new_destination = folder_destination + '/' + filename
                        servicedf = pd.read_csv(src, sep='\t')
                        os.rename(src, new_destination)
                        service_report(servicedf)

                    if filename == 'Sales.tsv':
                        src = folder_to_track + '/' + filename
                        new_destination = folder_destination + '/' + filename
                        salesdf = pd.read_csv(src, sep='\t')
                        os.rename(src, new_destination)
                        sales_report(salesdf)

                else:
                    print('Something Went Wrong')
                    return



def main():
    while 1:
        event_handler = ChangeHandler()
        observer = Observer()
        observer.schedule(event_handler, folder_to_track, recursive=True)
        observer.start()

        try:
            while True:
                time.sleep(1)
        except KeyboardInterrupt:
            observer.stop()
        observer.join()

if __name__ == '__main__':
    main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...