Bonjour,

J'avais créé un script bash qui me permet de me connecter à un appareil, et le formater:
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
#!/usr/bin/expect -f
 
set Username tel
set Password tel
 
spawn telnet 192.168.0.2
 
expect "Username: "
send -- "$Username\r"
 
expect "Password: "
send -- "$Password\r"
 
send -- "\r"
send -- "format a:\r"
 
expect "Sure (Y/N) ? "
send -- "Y\r"
 
expect eof
Il marche très bien, mais j'ai ensuite créé un script python pour copier des fichiers en FTP sur le matériel formaté... Pas de problème jusque là ...
Je souhaiterais , dans un but de continuité, reprendre mon script telnet et le passer en python, j'ai donc pour ceci commencer un script mais celui-ci ne produit rien à l'écran et m'affiche une erreur...

Le script:
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
#!/usr/bin/python
# -*- coding: utf-8 -*-
import telnetlib
import sys
 
HOST = "192.168.0.2"
USER = "tel"
PASSWORD = "tel"
 
telnet = telnetlib.Telnet(HOST)
 
telnet.read_until("Username: ")
telnet.write(USER + "\n")
 
telnet.read_until("Password: ")
telnet.write(PASSWORD + "\n")
 
telnet.write("\n")
 
telnet.write("format a:\n")
 
telnet.read_until("Sure (Y/N) ?")
telnet.write("y")
 
telnet.close()
Et quand je l'interromps car rien ne se passe, il m'affiche:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Traceback (most recent call):
  File "Format_PU.py", line 12, in <module>
     telnet.read_until("Username: ")
  File "/usr/lib/python3.5/telnetlib.py", line 302, in read_until
     i = self.cookedq.find(match)
TypeError: a bytes-like object is required, not 'str'
Je comprends qu'il ne veut pas de ma chaine de caractères ... Mais que dois-je utiliser pour faire potentiellement comme sur mon script en bash ?

En vous remerciant de votre aide,