problème libftp [ resolu ] [ Python ] - Python - Programmation
Marsh Posté le 30-04-2003 à 21:41:53
Ben je n'arrive pas à récupere ce qui sort sur stdout. Je veux le mettre dans une liste et non pas que ca apparaisse dans mon terminal.
CHaiCA
Marsh Posté le 30-04-2003 à 22:07:20
ben tu n'as qu'a donner une fonction qui fait rien
genre
def doNothing(arg): pass
ou alors tu peux faire
class Adder:
def __init__(self):
self.liste=[]
def __call__(self, arg):
self.liste.append(arg)
a=Adder()
ftp.retrlines('LIST', a)
Marsh Posté le 01-05-2003 à 02:33:46
plus simple :
Code :
|
EDIT: ++Taz> a mon avis ca marche pas ton truc, les methodes de la ftplib attendent generalement une methode comme second arg, pas un objet...
Marsh Posté le 01-05-2003 à 09:19:55
oupas, c'est vrai que j'avais pas pensé à la méthode simple, mais la mienne marche à coup sur, je l'utilise tout le temps avec d'autres fonctions. Je dis ma méthode, mais c'est une technique archi connue.
EDIT: typage dynamique, on s'en fout méthode, fonction ou objet, on veut juste un objet avec l'attribut __call__
Marsh Posté le 01-05-2003 à 11:56:26
++Taz a écrit : oupas, c'est vrai que j'avais pas pensé à la méthode simple, mais la mienne marche à coup sur, je l'utilise tout le temps avec d'autres fonctions. Je dis ma méthode, mais c'est une technique archi connue. |
Vi c'est pa fo... mais un chti peu tordu quand meme...
Sinon pour utiliser avec un fichier, faut faire qqchose du style :
Code :
|
Spa bete finalement ton système de redefinir __call__
J'ai appris un truc, merci
Spa si tordu que a en y reflechissant...
Marsh Posté le 01-05-2003 à 11:58:54
ben c'est le principe des objets-fonctions (que sont les focntions Python)
c'est également tres utilisé en C++
Marsh Posté le 30-04-2003 à 21:38:26
retrlines(command[, callback])
Retrieve a file or directory listing in ASCII transfer mode. command should be an appropriate "RETR" command (see retrbinary() or a "LIST" command (usually just the string 'LIST'. The callback function is called for each line, with the trailing CRLF stripped. The default callback prints the line to sys.stdout.
j'aimerais utiliser cette methode mais il faudrait que je redirige ce qui va s'afficher vers une liste par exemple, ou au pire un fichier.
Je vois pas trop comment m'y prendre.
CHaiCA
Message édité par chaica le 01-05-2003 à 11:59:02