Liebe Pythonfreunde, ich glaube ich stelle mich mal wieder einfach zu dumm an um das Problem zu lösen. Ich arbeite an einem einfach Skript welches eine Textdatei von einem FTP lädt und dann für den weiteren Verbrauch verarbeitet. Der Code ist: import os from ftplib import FTP #Verbindung zum FTP ftp = FTP("XXXXXXXXXX") ftp.login("XXXXXXXX","XXXXXX") #Download der News Datei #content=None content = ftp.retrlines("RETR news.txt") ftp.quit() # Verbindung beenden #content=str(content) print content #Erstellen der welcome Message f=file('news.txt', 'w') f.writelines('~~{b.s.a^| News}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') f.writelines(content) f.writelines('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') f.close() Leider bekomme ich den Inhalt nicht wie geplant aus dem Befehl ftp.retrlines("RETR news.txt") in die Variable content. Kann jemand mir da bitte helfen. Viele Grüße Christoph Heer
Moin, Christoph Heer wrote:
Liebe Pythonfreunde, ich glaube ich stelle mich mal wieder einfach zu dumm an um das Problem zu lösen.
ooch ... :-)
Ich arbeite an einem einfach Skript welches eine Textdatei von einem FTP lädt und dann für den weiteren Verbrauch verarbeitet.
Der Code ist: import os from ftplib import FTP
#Verbindung zum FTP ftp = FTP("XXXXXXXXXX") ftp.login("XXXXXXXX","XXXXXX")
#Download der News Datei #content=None content = ftp.retrlines("RETR news.txt")
Du musst retrlines() noch ein "callback" verpassen - häufig ist das die write-Methode eines (geöffneten) File-Objekts.
ftp.quit() # Verbindung beenden #content=str(content) print content
#Erstellen der welcome Message f=file('news.txt', 'w') f.writelines('~~{b.s.a^| News}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') f.writelines(content) f.writelines('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') f.close()
Leider bekomme ich den Inhalt nicht wie geplant aus dem Befehl ftp.retrlines("RETR news.txt") in die Variable content. Kann jemand mir da bitte helfen.
Ein besseres Beispiel als in der Python-Dokumentation (http://docs.python.org/lib/module-ftplib.html) findest Du u.a. hier http://effbot.org/librarybook/ftplib.htm
Viele Grüße Christoph Heer
Bis denn Uwe
Hallo Christoph, On 2007-10-30 20:48, Christoph Heer wrote:
Ich arbeite an einem einfach Skript welches eine Textdatei von einem FTP lädt und dann für den weiteren Verbrauch verarbeitet.
Der Code ist: [...]
auch, wenn ich nicht auf deinen Code eingehe (dazu hat ja Uwe schon geantwortet), noch ein Hinweis: Wenn nichts dagegen spricht, zusätzliche Python-Module zu installieren, kannst du auch ftputil [1] verwenden. Damit kannst du sogar direkt aus Remote-Dateien lesen oder in diese schreiben: import ftputil ftp_host = ftputil.FTPHost(server, user, password) f = ftp_host.open("news.txt") for line in f: print line, f.close() ftp_host.close() Ein einfaches ftp_host.download("news.txt", "news.txt") ist ebenfalls möglich. ;-) (Dabei ist das erste Argument der Remote- Pfad und das zweite der lokale Pfad.) Achte beim Verwenden der Datei-Funktionen auf die Unterscheidung von Text- und Binärmodus. Wie bei Pythons open-Befehl ist der Textmodus die Standardeinstellung, weshalb du beim Up- oder Download meistens "b" als drittes Argument verwenden musst. [1] http://ftputil.sschwarzer.net Viele Grüße Stefan (ftputil-Autor)
participants (3)
-
Christoph Heer
-
Stefan Schwarzer
-
Uwe Tapper