EnTeQuAk hat geschrieben:Sorry, jetz bin ich auch ein wenig überrascht.
Hi EnTeQuAk!
Lies dir noch mal den FTP-Teil in der Python-Dokumentation durch.
Die meisten FTP-Funktionen, die etwas vom FTP-Server holen, erwarten eine Funktion, an die sie beim Empfangen als ersten Parameter den empfangenen Text übergeben können.
``dir()`` schreibt den Ordnerinhalt nach ``stdout``, wenn diese Funktion nicht angegeben ist.
Hier ein Beispiel:
Code: Alles auswählen
>>> import ftplib
>>> ftp = ftplib.FTP(host='ftp.suse.com', user='anonymous')
>>> ret = []
>>> ftp.dir(ret.append)
>>> ret
['drwxr-xr-x 2 root root 4096 May 26 2004 bin', 'drwxr-xr-x
2 root root 4096 May 26 2004 dev', 'drwxr-xr-x 2 root root
4096 Sep 10 2004 etc', 'drwxr-xr-x 2 root root 4096 May 26
2004 lib', 'drwxr-xr-x 2 root root 4096 Feb 13 2006 msgs', '
drwxr-xr-x 8 ftp root 4096 Apr 04 23:12 pub', 'drwxr-xr-x 3
root root 4096 May 26 2004 usr']
>>> ret = []
>>> ftp.retrlines("LIST", ret.append)
'226 Directory send OK.'
>>> ret
['drwxr-xr-x 2 root root 4096 May 26 2004 bin', 'drwxr-xr-x
2 root root 4096 May 26 2004 dev', 'drwxr-xr-x 2 root root
4096 Sep 10 2004 etc', 'drwxr-xr-x 2 root root 4096 May 26
2004 lib', 'drwxr-xr-x 2 root root 4096 Feb 13 2006 msgs', '
drwxr-xr-x 8 ftp root 4096 Apr 04 23:12 pub', 'drwxr-xr-x 3
root root 4096 May 26 2004 usr']
>>>
mfg
Gerold