[Python] ftplib

Voila mon problème :

J’essaye tant bien que mal de transféré un fichier html avec le module ftplib de la façon suivante :

session = ftplib.FTP('ftp','login','pass')

fichier = open('fichier.html','rb')
session.storbinary('STOR fichier.html', fichier)
fichier.close()

session.quit()

Résultat il manque un morceau du code HTML à l’arriver, je n’arrive toujours pas à comprendre pourquoi :frowning:

Salut,
il semblerait que ce module ne transfert pas forcément la totalité d’un fichier, selon sa taille. Aussi, quelqu’un ayant eu ce problème l’a résolu en modifiant la fonction source et en remplaçant la ligne conn.send(buf) par conn.send(buf, socket.MSG_WAITALL), ainsi le transfert attend d’être total avant de fermer la connexion.

mail.python.org/pipermail/python … 00716.html

J’utilise la ftplib dans un logiciel propriétaire que j’ai programmé, et qui l’utilise très intensivement.

Rien a signaler. Si le fichier n’est pas complet, alors c’est que le code n’est pas bon.

Relisez la doc, a+

En expect (rien à voir avec la choucroute mais bon…) c’est pareil.
Si on ne met pas “set timeout -1” alors le transfert est coupé car la fonction send stor file est interrompue apres le timeout de quelques secondes.
Donc ca pourrait ^etre du meme style peut etre, un timeout? Ou alors s’assurer que la fonction est bien bloquante.

“Relisez la doc” , la traduction polie de RTFM :slightly_smiling:

Ok merci pour toutes ces réponses, j’avais emprunté un bou de code du wiki python francophone pour essayé ftplib, apparament il faudrait compléter certaines choses.