Я пытаюсь создать проект, который позволит пользователю автоматически сортировать свои файлы в папке загрузок на основе ключевых слов в имени файла. Часть этой программы позволяет пользователю выбрать имя файла, чтобы его можно было правильно отсортировать. У меня возникают проблемы с тем, чтобы пользователь мог назвать свой файл при появлении запроса.
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import os
import json
import time
#Folders
folder_to_track = 'C:/Users/physi/Downloads'
image_destination = 'C:/Users/physi/Desktop/Images'
class MyHandler(FileSystemEventHandler):
i = 1
def on_modified(self, event):
for filename in os.listdir(folder_to_track):
time.sleep(5)
new_title = input("File Name: ")
extension = str(input("Extension: "))
new_name = folder_to_track + "/" + str(new_title + "." + extension)
os.rename(folder_to_track + "/" + filename, new_name)
time.sleep(2)
print("File Renamed!")
time.sleep(10)
src = folder_to_track + "/" + new_name
if 'Image' in new_name:
new_destination = image_destination + "/" + new_name
os.rename(src, new_destination)
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, folder_to_track, recursive=True)
observer.start()
try:
while True:
time.sleep(10)
except KeyboardInterrupt:
observer.stop()
observer.join()```
Выше приведен код, который я написал до сих пор. Когда этот код запускается, он может определить, когда новый файл добавлен в папку загрузок, но как только он предлагает пользователю назвать свой файл, он предлагает им это сообщение об ошибке ... ``
Traceback (most recent call last):
File "C:\Users\physi\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "C:\Users\physi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\watchdog\observers\api.py", line 203, in run
self.dispatch_events(self.event_queue, self.timeout)
File "C:\Users\physi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\watchdog\observers\api.py", line 376, in dispatch_events
handler.dispatch(event)
File "C:\Users\physi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\watchdog\events.py", line 331, in dispatch
{
File "C:\Users\physi\Desktop\File_Management.py", line 33, in on_modified
os.rename(filename, new_name)
FileNotFoundError: [WinError 2] The system cannot find the file specified: '37ea886b-25ed-4469-a13c-9c5fbf3ddd09.tmp' -> 'C:/Users/physi/Downloads/Hubble_Image..jfif'```
Может ли кто-нибудь помочь мне исправить эту программу, чтобы пользователь мог переименовать свой файл, а затем автоматически сохранить и отсортировать его. Спасибо, я ценю помощь!
Этот код был вдохновлен Youtube видео Калле Холдена