Seite 1 von 1

Problem mit holen von Daten vom FTP-Server

Verfasst: Donnerstag 4. März 2010, 15:06
von Minicar
Hallo,
ich bins schon wieder.

Ich habe es jetzt geschafft das auf klick des Enter-Buttons die Verbindung zum FTP-Server im Hintergrund aufgebaut wird. Allerdings gelingt es mir nicht, eine Datei vom Server zu holen.
Bekomme eine Fehlermeldung:
No such file or directory.
Ich erwarte das er mir die Datei vielleicht irgendwo ablegt oder sie direkt öffnet

Könntet ihr mir da helfen?

Code: Alles auswählen


    def test (self):
        edit = QtGui.QLineEdit('', self)
        edit.resize(350,20)
        DATEI = edit
        ftp = ftplib.FTP('Server') # Server ist nur der Ersatzname
        ftp.connect()
        ftp.login("Minicars", "passwort")
        ftp.set_pasv(False)
        print (ftp.getwelcome())
        #print (ftp.retrlines('LIST'))
        bild=""
        def f(data):
            global bild
            bild += data
        ftp.retrbinary("RETR test.doc", f)
        #self.Label1.SetText(bild)
        ftp.quit
      
app = QtGui.QApplication(sys.argv)
bild = ""
icon = DragDrop()
icon.show()
app.exec_()
Wäre für eure Hilfe sehr dankbar

Liebe Grüße Minicar

Re: Problem mit holen von Daten vom FTP-Server

Verfasst: Donnerstag 4. März 2010, 15:34
von /me
Minicar hat geschrieben:Könntet ihr mir da helfen?
Nicht ohne eine Beschreibung dessen was du als Resultat erwartest und was du stattdessen erhältst. Gegebenenfalls auftretetende Fehlermeldungen wäre auch hilfreich. "Geht nicht!" ist eine äußerst unzureichende Beschreibung.

Du könntest übrigens den Code mal eindampfen indem du das GUI-Zeug rausnimmst und nur ein relevantes (theoretisch lauffähiges) Codestück übrig lässt.

Verfasst: Donnerstag 4. März 2010, 17:36
von snafu
Was verstehst du an "No such file or directory" nicht?
Minicar hat geschrieben:Ich erwarte das er mir die Datei vielleicht irgendwo ablegt oder sie direkt öffnet
Die Implementierung erwartet da schon etwas konkreteres: Nämlich eine Funktion, die ausgeführt werden soll und die sinnigerweise die übergebenen Daten in eine Datei schreiben kann. Ich zitiere die Doku:
Here’s a sample session using the ftplib module:

Code: Alles auswählen

>>> from ftplib import FTP
>>> ftp = FTP('ftp.cwi.nl')   # connect to host, default port
>>> ftp.login()               # user anonymous, passwd anonymous@
>>> ftp.retrlines('LIST')     # list directory contents
total 24418
drwxrwsr-x   5 ftp-usr  pdmaint     1536 Mar 20 09:48 .
dr-xr-srwt 105 ftp-usr  pdmaint     1536 Mar 21 14:32 ..
-rw-r--r--   1 ftp-usr  pdmaint     5305 Mar 20 09:48 INDEX
 .
 .
 .
>>> ftp.retrbinary('RETR README', open('README', 'wb').write)
'226 Transfer complete.'
>>> ftp.quit()
Und das, was du da mit `f` bzw `bild` veranstaltest, entspricht definitiv nicht dieser Intention.

Verfasst: Freitag 5. März 2010, 08:54
von Minicar
ja das habe ich auch schon probiert, nur holt er mir die Datei nicht, sondern erstellt sie neu, aber ohne Inhalt.

Verfasst: Freitag 5. März 2010, 10:01
von EyDu
Du musst die Datei natürlich auch noch schließen ;-)

Verfasst: Freitag 5. März 2010, 11:05
von Minicar
okay, habe die Datei wieder geschlossen, er zeigt mir jetzt keine Fehler mehr an, aber die Datei ist trotzdem leer

Verfasst: Freitag 5. März 2010, 13:47
von snafu
Zeig mal den zugehörigen Code. Bist du zudem sicher, dass die Datei auf dem Server nicht schon leer ist?