IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Transférer un fichier texte vers le server ftp d'une imprimante


Sujet :

Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Transférer un fichier texte vers le server ftp d'une imprimante
    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

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 330
    Points : 36 849
    Points
    36 849
    Par défaut
    Salut,
    Regardez ce que raconte le ftp qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ftp>put test.txt
    200 PORT command successful
    Puis l'erreur ce celui qui ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftplib.error_perm: 502 Command 'PASV' not implemented.
    La documentation du module ftplib raconte:
    FTP.set_pasv(boolean)

    Enable “passive” mode if boolean is true, other disable passive mode. (In Python 2.0 and before, passive mode was off by default; in Python 2.1 and later, it is on by default.)
    Donc, une petite modif comme:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    connect = ftplib.FTP(host, user, password) # on se connecte
    connect.set_pasv(False)
    devrait etre mieux.

    - W

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Un grand merci wiztricks,

    Grâce à votre aide, le problème est résolu.

    J'ai modifié le code comme suit:

    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
    18
    19
    20
    21
    22
    23
    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
     
    # --------------------- ajout selon conseil wiztricks:
    connect.set_pasv(False)
     
    etat = connect.getwelcome() # on récupère le "message de bienvenue"
    print( "Réponse printserver : ", etat) # affichage du message 
     
    fichier = FichierOut
    file = open(fichier,'rb')
     
    putFich = "STOR " + fichier #<---- utilisation de STOR, PUT étant inconnu dans ftplib
     
    connect.storbinary(putFich, file)
     
    file.close()
     
    connect.quit()
    et l'imprimante exécute correctement la commande.

    Cordialement.

    PhilPY

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Import de fichier texte vers sql server
    Par nawal59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/04/2012, 16h32
  2. depuis un fichier texte vers base oracle
    Par foulla002 dans le forum JDBC
    Réponses: 5
    Dernier message: 27/07/2006, 12h48
  3. [sql2k][dts] : copie fichier texte vers table
    Par gatsu07 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/06/2006, 10h53
  4. transférer un fichier de manière sécurisé par ftp
    Par jack_1981 dans le forum Développement
    Réponses: 2
    Dernier message: 22/12/2005, 14h15
  5. importation d'un fichier texte vers excel
    Par darkpocket dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/01/2005, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo