ich hab ein Skript im Netz gesehen, mit dem man automatisch Dateien aus einem überwachten Ordner in einen anderen schieben kann. Habs dann etwas modifiziert damits meinen Download Ordner für mich aufräumt/sortiert.
Skript:
Code: Alles auswählen
import os
import platform
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
for filename in os.listdir(folder_to_track):
src = folder_to_track + "/" + filename
if platform.system() == "Windows":
win_extension = os.path.splitext(filename)[1]
if win_extension in music_list:
folder_destination = folder_destination + "\\Musik"
elif win_extension in videos_list:
folder_destination = folder_destination + "\\Videos"
elif win_extension == ".exe":
folder_destination = folder_destination + "\\exe-Dateien"
elif win_extension == ".jar":
folder_destination = folder_destination + "\\jar-Dateien"
elif win_extension == ".zip":
folder_destination = folder_destination + "\\zip-Archive"
else:
folder_destination = folder_destination + "\\zzSonstiges"
new_destination = folder_destination + "\\" + filename
else:
new_destination = folder_destination + "/" + filename
os.rename(src, new_destination)
music_list = [".mp3", ".m4a", ".wav"]
videos_list = [".mp4", ".avi", ".mkv", ".mov", ".mpeg"]
if platform.system() == "Windows":
with open("paths/windows_path.txt") as file:
folder_to_track = file.readline()
folder_destination = file.readline()
else:
pass
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()
C:\\Path\\Zum\\Download
C:\\Path\\Zum\\SortiertenDownload
Das Skript hab ich in meiner Linux Maschine angefertigt bzw halt abgeändert. Habs dann mit nem Stick aufs Windows8.1 gezogen, mir da extra Python3.6.8 installiert, und dann versucht das Skript zu starten, hab dann noch mit pip3 watchdog nachinstalliert, aber jetzt gibt Windows mir den Error aus:
OSError: [WinError123] Die Sintax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
(genauen Error kann ich leider nicht copien, da das Konsolen Fenster sich so schnell öffnet und wieder schließt dass ich nur einen Screenshot machen konnte... gibts sich auch ne andere Möglichkeit aber mir viel grad nix besseres ein)
Woher kommt der error? Und wie kann ich ihn beheben?