ich komme ursprünglich aus der PHP-welt und will mich nach 4 Jahren mal ein wenig in anderen Sprachen austoben. Dazu habe ich in Python mal ein kleines Backup-Script geschrieben. Da habe ich eine kleine Verständnisfrage:
Ich habe, um aus der Liste der Dateien/Verzeichnisse alle Dateien zu löschen, folgenden Code erstellt (und schäme mich richtig dafür):
Code: Alles auswählen
import dircache
import operator
import os
import time
backupTarget = "backup" # das Zielverzeichnis für die Backups
directories = dircache.listdir(".") # das zu durchsuchende Verzeichnis (. = Verzeichnis, in dem die backup.py liegt)
winrar = "D:\\WinRAR\\rar" # Pfad zur Kommandozeilen-Version von WinRAR
options = "a -r -m5 -inul" # Optionen für WinRAR (a = hinzufügen, r = rekusriv, m5 = höchste Kompression, inul = keine Ausgabe)
# Verzeichnisse kennzeichnen
dircache.annotate('.',directories)
# Unnoetiges Verzeichnis entfernen
directories.remove(backupTarget+"/");
#
# Alle anderen Dateien entfernen
# (Sicher schrecklich gelöst, aber ich bin Phyton-Anfänger...)
#
deleted = 1
while deleted:
for i in range(len(directories)):
string = directories[i]
if string[-1] != "/":
del directories[i]
deleted = 1
break
else:
deleted = 0
Aber das muss doch auch wesentlich eleganter gehen mit dem Löschen von Elementen. (Die Funktion isdir() habe ich erst nach der Variante mit dem / am Ende entdeckt (ich hab (PHP) nach is_dir() gesucht ^^).
Helft mir mal auf die Sprünge, so will ich den Code nicht lassen, das ist ja beschämend.
Sanji