ftplib und verzeichnisse

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

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!
Zuletzt geändert von anogayales am Donnerstag 10. September 2009, 20:29, insgesamt 1-mal geändert.
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich glaube, das geht nicht. Iteriere halt über die Dateinamen.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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!
the more they change the more they stay the same
Antworten