Bonjour

Je suis débutant en developpement Python (et autre langage d'ailleurs) et je bloque sur un simple script en Python qui effectuerait un telnet sur un matériel genre routeur
ou switch Cisco pour simplement y déposer un fichier en TFTP. Tout commence bien jusqu'au moment de "discuter" avec mon matériel "copy
tftp flash". Le read until intercepte bien la premiere ligne du telnet qui me demande l'adresse de mon serveur TFTP mais ensuite, quand il
demande le nom du fichier, il valide sans même prendre en compte le contenu de la variable que je lui envoie (MOH dans mon script ci dessous):

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
36
37
38
39
40
41
42
43
44
45
import telnetlib
import time
 
compteur_ligne = 0
SRST = []
compteur_SRST = 0
 
with open("fichier_config.txt","r") as fichier_config:
    for ligne_fichier in fichier_config:
        if compteur_ligne == 8:
            MOH = ligne_fichier
        if compteur_ligne == 11:
            IPTFTP = ligne_fichier
        if compteur_ligne >= 14:
            SRST.append(ligne_fichier)
        compteur_ligne += 1
 
for val in SRST:
    Host,ID,Pass,EnPass = val.split(";")
    print ("Telnet en cours sur " + Host)
    TN = telnetlib.Telnet(Host)
    TN.read_until(b"Username: ")
    TN.write(ID.encode('utf8') + b"\n")
    TN.read_until(b"Password:")
    TN.write(Pass.encode('utf8') + b"\n")
    TN.read_until(b">")
    TN.write(b"EN\n")
    TN.read_until(b"Password: ")
    TN.write(EnPass.encode('utf8') + b"\n")
    TN.read_until(b"#")
    print ("Loggué correctement en tant que " + ID)
    print ("Execution du TFTP en cours...")
    TN.write(b"copy tftp: flash:\n")
    TN.read_until(b"[]? ")
    TN.write(IPTFTP.encode('utf8') + b"\n")
    time.sleep(1)
    TN.read_until(b"Source filename []? ")
    TN.write(MOH.encode('utf8') + b"\n")
    time.sleep(1)
    #TN.read_until(b"]? ")
 
    TN.write(MOH.encode('utf8') + b"\n")
    time.sleep(1)
    retour = TN.read_very_eager()
    print(retour)


Voici ce que j'ai quand je lance la commande manuellement:
Switch_Bricol_Ced#copy tftp flash
Address or name of remote host []? 10.206.54.65
Source filename []? TEXT.txt
Destination filename [TEXT.txt]?


Voici ce que me retourne le TN.read_very_eager en fin de script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
b'\r\n?File name not specified\r\n%Error parsing filename (Unknown error 0)\r\nSwitch_Bricol_Ced#TEST.txt\r\nTranslating "TEST.txt"...domain server (255.255.255.255)'


on voit bien qu'il envoie l'erreur File name not specified donc il doit envoyer une valeur à blanc ou autre chose, la valeur MOH contient bien la bonne valeur, je l'ai affiché
avec un simple print....
Je pense que j'ai un probleme d'encoding mais c'est ultra galère à gérer le coding/decoding

Help me please!

Thanks in advance!