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

Réseau/Web Python Discussion :

Paramiko - Création fichier local vide [Python 3.X]


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 198
    Par défaut Paramiko - Création fichier local vide
    Bonjour,

    nouveau dans python je cherche à faire une chose simple (je pensais), se connecter un équipements en SSH, récupérer le résultat d'une commande et écrire le résultat dans un fichier sur l'hote local avec le nom du fichier contenant le nom de la machine locale.

    Le problème ...le fichier crée reste vide ...
    La variable dst_file devant contenir le résultat est vide.

    Voici mon code.

    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
    24
    25
    #PYTHON3
     
    import paramiko
     
    host = "192.168.109.10"
    port = 22
    username = "admin"
    password = "admin"
    command = "show int status"
     
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(host, port, username, password)
     
    stdin, stdout, stderr = ssh.exec_command(command)
    lines = stdout.readlines()
     
    ssh.close()
     
    path = '/home/toto/Python_script/'
    file_dst = '%s%s.txt' %(path,host)
     
    new_file = open(file_dst, 'w')
    new_file.write(lines)
    new_file.close()
    Merci pour votre aide.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 769
    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 769
    Par défaut
    Salut,

    Est ce qu'il y a quelque chose dans lines? Parce que dst_file ne contient que le nom du ficher.
    Après il faut aussi vérifier que la commande s'est exécuté correctement avant de faire quelque chose du résultat.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 198
    Par défaut
    Bonjour,

    merci pour le retour.

    quand je fait un print(lines) j'obtiens le résultat ci-dessous.

    ['\r\n', '\r\n', 'Port Name Status Vlan Duplex Speed Type \r\n', 'Gi0/0 connected 1 auto auto unknown\r\n', 'Gi0/1 connected 1 auto auto unknown\r\n', 'Gi0/2 connected 1 auto auto unknown\r\n', 'Gi0/3 connected 1 auto auto unknown\r\n', 'Gi1/0 connected 1 auto auto unknown\r\n', 'Gi1/1 connected 1 auto auto unknown\r\n', 'Gi1/2 connected 2 auto auto unknown\r\n', 'Gi1/3 connected 2 auto auto unknown\r\n', 'Gi2/0 connected 2 auto auto unknown\r\n', 'Gi2/1 notconnect 3 auto auto unknown\r\n', 'Gi2/2 notconnect 1 auto auto unknown\r\n', 'Gi2/3 notconnect 1 auto auto unknown']

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 769
    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 769
    Par défaut
    Salut,

    Dans ce cas, l'instruction de la ligne 24 (new_file.write(lines)) devrait afficher un message d'erreur expliquant pourquoi çà ne peut pas écrire dans le fichier (et du coup le fichier est vide).

    Après il faut pas rêver: écrire un programme qui marche, c'est corriger des fautes d'orthographes et des oublis qui dégénèrent en erreurs et résultats surprenants.
    Normalement, on apprend à programmer avec un tuto. et on se familiarise avec les messages d'erreur (que faire lorsque...).
    Et on revoit le chapitre sur les fichiers pour voir comment on écrit une liste ou on évite de créer une liste.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 198
    Par défaut
    Effectivement il y avait ce message.

    new_file.write(lines)
    TypeError: write() argument must be str, not list
    J'ai trouvé la solution en regardant vite fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listToStr = ' '.join(map(str, lines))
    Ca donne


    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #PYTHON3
     
    import paramiko
    #paramiko.util.log_to_file("paramiko.log")
     
     
    host = "192.168.109.10"
    port = 22
    username = "admin"
    password = "admin"
    command = "show int status"
     
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(host, port, username, password)
     
    stdin, stdout, stderr = ssh.exec_command(command)
    lines = stdout.readlines()
     
    ssh.close()
     
    path = '/home/alexandre/Python_script/'
    file_dst = '%s%s.txt' %(path,host)
    print(file_dst)
     
    print(lines)
     
    for ligne in lines:
     print(ligne, end = '')
     
    listToStr = ' '.join(map(str, lines))
     
    new_file = open(file_dst, 'w')
    new_file.write(listToStr)
    new_file.close()
    Merci pour l'aide.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 769
    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 769
    Par défaut
    Salut,

    Vous pourriez aussi écrire à la ligne 18: lines = stdout.read() et alors ligne 34 le new_file.write(lines) fonctionnerait aussi.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. [X3-V6] Erreur lors de la création de fichier local
    Par jeromecha dans le forum SAGE
    Réponses: 2
    Dernier message: 05/07/2019, 09h28
  2. [Apache POI] création d'un fichier Word vide
    Par reeda dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 10/03/2010, 18h08
  3. Réponses: 5
    Dernier message: 22/01/2008, 12h25
  4. [VBA-E]Création fichier EXCEL et détection cellule vide
    Par benoue dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 24/02/2006, 17h22
  5. Création fichier MDE
    Par faventin dans le forum Access
    Réponses: 4
    Dernier message: 25/10/2004, 15h03

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