У меня есть сегмент кода, который вызывает множество функций в действие, используя наблюдателей сторожевого таймера для обнаружения изменений. Проблема в том, что с фрагментом кода ниже ТОЛЬКО файл 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()