Seite 1 von 1

ftplib und verzeichnisse

Verfasst: Donnerstag 10. September 2009, 17:35
von anogayales
Hi Community,

gibt es eine Möglichkeite über die ftplib komplette Verzeichnisse
zu kopieren. In der Doku sehe ich nur Funktionen für einzelne Dateien.
http://docs.python.org/library/ftplib.html

Kann man die vielleicht mit http://docs.python.org/library/shutil.html
kombinieren?

Hat irgendjemand brauchbare Ideen? Bevor ich hier nämlich Anfange das Rad neu zu erfinden ...

Hintergrund: Ich arbeite gerade an einer One Click Backup Lösung.

Viel Glück!

Verfasst: Donnerstag 10. September 2009, 18:11
von snafu
Ich glaube, das geht nicht. Iteriere halt über die Dateinamen.

Verfasst: Freitag 11. September 2009, 07:52
von Dav1d
ich hatte ein ähnliches Problem mit der zipfile lib ich habs so gelöst:

Code: Alles auswählen

path = 'C:\\test\\'
dirs = []

def addelements(path):
    content = os.listdir(path)
    for element in content:
        if os.path.isdir(os.path.join(path, element)):
            dirs.append(os.path.join(path, element))
            continue
        z.write(os.path.join(path, element)) # z = zipfile.ZipFile(irgendwas, 'a')

addelements(path)

while dirs:
    directory = dirs.pop()
    addelements(directory)
Der code geht jedes Verzeichnis vom Mainverzeichnis (path = 'C:\\test\\')
alle Unterordner durch und dursucht die nach datein

//Edit: das ganze müsste auch per os.walk viel kürzer gehen, allerdings weis ich nicht wie

Code: Alles auswählen

import sys, os

total_size = 0
file_number = 0
home_drive = 'C:\\'

for root, dirs, files in os.walk(home_drive):
    for file in files:
        file_path = os.path.join(root, file)
        file_size = os.path.getsize(file_path)
        total_size += file_size
        file_number += 1
print "Gesamt von:", home_drive, total_size, "Bytes in", file_number, "Dateien"
Das oben ist ein Beispiel um die Gesamtgröße von C:\\ herauszufinden vllt kannst du es brauchen!