Bonjour,

Je travaille avec Python 3.3.2 dans l'environnement Windows et tente de transmettre un fichier texte vers le server ftp d'une imprimante.

Mon fichier texte ("test.txt") ressemble à ceci:
{
command1,1,2,3,4,5,6|
command2,1,2,3,4,5,6|
}
En ligne de commande Windows, j'écris les commandes suivantes:

W:\>ftp 192.168.1.29
Connecté à 192.168.1.29
220 XXS version 6.5.2 ready
Utilisateur (192.168.1.29:(none)):
230 User logged in.
ftp>put test.txt
200 PORT command successful
150 Opening ASCII mode data connection for test.txt
226 Transfer complete.
ftp: 250 octets envoyés en 0.00 secondes à 250000.00 Ko/s
et l'imprimante fait ce qui lui est demandé sans problème.

En Python, j'ai écrit ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import ftplib
host = "192.168.1.29" # adresse du serveur FTP
user = ""             # identifiant
password = ""         # mot de passe
connect = ftplib.FTP(host, user, password) # on se connecte
 
# ---- juste pour contrôler que nous sommes connectés
etat = connect.getwelcome() # on récupère le "message de bienvenue"
print( "Réponse printserver : ", etat) # affichage du message 
 
fichier = FichierOut
file = open(fichier,'r')
print (file.read())                    #--- juste pour contrôler que le fichier est lu
connect.storlines('PUT ' + fichier, file)
file.close()
 
connect.quit()
et ça ne fonctionne pas, voici ce que je retrouve comme message d'erreur:

File "E:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
return self.func(*args)
File "C:\Users\jr\Desktop\test.py", line 93, in clique
connect.storlines('PUT ' + fichier, file)
File "E:\Python33\lib\ftplib.py", line 497, in storlines
with self.transfercmd(cmd) as conn:
File "E:\Python33\lib\ftplib.py", line 386, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "E:\Python33\lib\ftplib.py", line 346, in ntransfercmd
host, port = self.makepasv()
File "E:\Python33\lib\ftplib.py", line 324, in makepasv
host, port = parse227(self.sendcmd('PASV'))
File "E:\Python33\lib\ftplib.py", line 259, in sendcmd
return self.getresp()
File "E:\Python33\lib\ftplib.py", line 233, in getresp
raise error_perm(resp)
ftplib.error_perm: 502 Command 'PASV' not implemented.
Quelqu'un a-t-il une idée de l'erreur que je commets ?

Cordialement.

PhilPY