Ich versuche, ein grundlegendes Backup-Skript von einem Ordner zum anderen zu schreiben, und ich habe es zum Funktionieren - aber die Verzeichnisstruktur wurde nicht kopiert, nur die Dateien. Ich versuche, auch in dem Unterordner zu kopieren, so dass zum Beispiel geht c:\temp\docs\file.txt
-d:\temp\docs\file.txt
statt nur d:\temp\file.txt
Python-Skript erwartet einen Einzug Block in If-Anweisung
Mein Problem besteht in Vertiefung mit meiner if/else-Anweisung, aber mir alles gut aussieht. Was mache ich falsch?
import datetime, time, string, os, shutil
COPY_FROM_LOCATION = 'C:\\xampp\\htdocs\\projects'
folder_date = time.strftime("%Y-%m-%d")
BACKUP_TO_LOCATION = 'D:\\BACKUP\\' + folder_date
#Create a new directory in D:\BACKUP based on today's date so the folder you're trying to copy to actually exists:
if not os.path.exists(BACKUP_TO_LOCATION):
os.makedirs(BACKUP_TO_LOCATION)
#copy function
def backup(source_folder, target_folder):
for subdir, dirs, files in os.walk(source_folder):
if subdir == source_folder :
new_target_folder = target_folder
else:
folder_name = subdir.split("C:\\xampp\\htdocs\\projects\\",1)[-1]
new_target_folder = target_folder + "\\" + folder_name
for file in files:
print "backing up: " + folder_name
shutil.copy2(os.path.join(subdir, file), new_target_folder)
backup(COPY_FROM_LOCATION,BACKUP_TO_LOCATION)
Hier ist der Fehler Ich erhalte:
File "backup.py", line 15
new_target_folder = target_folder
^
IndentationError: expected an indented block
Mischen Sie Tabulatoren und Leerzeichen? – SuperSaiyan
Sie könnten einen Linter verwenden. Machen Sie Ihren Code einfacher zu lesen und PEP einzuhalten. Ich sehe kein Problem mit Ihrem Code, wodurch ich denke, dass es ein Problem ist, Tabulatoren und Leerzeichen als Einzug einzufügen. –