def copy_excel():Python - Wie Ordnererstellung behandeln, wenn Ordner bereits vorhanden ist
srcpath = "C:\\Aloha" #where the excel files are located
srcfiles = os.listdir(srcpath) #sets srcfiles as list of file names in the source path folder
destpath = "C:\\" #destination where the folders will be created
destdir = list(set([filename[19:22] for filename in srcfiles])) #extract three digits from filename to use for folder creation (i.e 505, 508, 517,...)
#function to handle folder creation
def create(dirname, destpath):
full_path = os.path.join(destpath, dirname)
if os.path.exists(full_path):
pass
else:
os.mkdir(full_path)
return full_path
#function to handle moving files to appropriate folders
def move(filename, dirpath):
shutil.move(os.path.join(srcpath, filename), dirpath)
#creates the folders with three digits as folder name by calling the create function above
targets = [(folder, create(folder, destpath)) for folder in destdir]
#handles moving files to appropriate folders if the three digits in file name matches the created folder
for dirname, full_path in targets:
for filename in srcfiles:
if dirname == filename[19:22]:
move(filename, full_path)
else:
pass
Ich bin etwas Neues zu Python so tragen Sie bitte mit mir! Ich konnte diesen Codeblock auf dieser Seite finden und an meinen speziellen Anwendungsfall anpassen. Der Code funktioniert gut zum Erstellen der angegebenen Ordner und zum Löschen der Dateien in die entsprechenden Ordner. Wenn ich den Code erneut für neue Dateien ausführen, die in der "C:\\Aloha"
abgelegt werden, erhalte ich eine Error 183: Cannot create a file when that file already exists.
In diesem Fall existiert der Ordner bereits, da es zuvor erstellt wurde, als das Skript zum ersten Mal ausgeführt wurde.
Der Code ist fehlerhaft, wenn Ziele versuchen, bereits vorhandene Ordner zu erstellen. Meine Frage ist, was ist die Logik, um bereits existierende Ordner zu behandeln und den Fehler zu ignorieren und die Dateien einfach in die entsprechenden Ordner zu verschieben? Das Skript sollte nur Ordner erstellen, wenn sie nicht bereits vorhanden sind.
Jede Hilfe würde sehr geschätzt werden! Ich habe try/except und nesting if/else Anweisungen sowie os.path.isdir(path)
versucht, um zu sehen, ob das Verzeichnis existiert, aber ich hatte kein Glück. Ich entschuldige mich für einige der falschen Kommentare, ich lerne immer noch Python-Logik, während ich dieses Skript ausbilde.
'os.path.exists', um einen' try/except' Block zu prüfen und zu verwenden, um fortzufahren, wenn der Fehler ausgelöst wurde. –