Gotcha, I got started from the telnet example listed in the docs. The linux
install was via yum and installed 2.x instead. That explains it. Althought
print (tn.read_all () ) runs in 2.x on linux.
I have another problem maybe you cna help me with. My telnet output
jibberish in windows: I cna parse some of the output for results but is
there anyway to get rid of the jibberish. (looks like hex but I'm not sure)
I can only use this tn.read_until(b'whatever string') Is this whats causing
the output? the b switch. seems like I don't need it in linux. is that
binary?
Thanks
C:\Python30>python \Python30\scripts\telnet-tftp1.py
b'\x1b[24;1H\x1b[24;31H\x1b[24;1H\x1b[?25h\x1b[24;31H\x1b[24;31Hy\x1b[24;31H\x1b
[?25h\x1b[24;32H\x1b[24;0H\x1bE\x1b[24;1H\x1b[24;32H\x1b[24;1H\x1b[2K\x1b[24;1H\
x1b[?25h\x1b[24;1H\x1b[1;24r\x1b[24;1H\x1b[2J\x1b[?7l\x1b[1;24r\x1b[?6l\x1b[24;1
H\x1b[?25h\x1b[24;1H\x1b[?6l\x1b[1;0r\x1b[?7l\x1b[2J\x1b[24;1H\x1b[1;1H\x1b[2K\x
1b[24;1H\n\r'
C:\Python30>
"MRAB" <goo...@mrabarnett.plus.com> wrote in message
news:mailman.2658.1237996568.11746.python-l...@python.org...
Python Newsgroup wrote:
I'm a total newbe to scripting not to mention python. However I was able
to successfully create a telnet script to initiate login, initiate tftp,
exit, exit, confirm and close session. Frustrated, possibly causing my
own misery. I replace the sript the script with the standard example.
import getpass
import sys
import telnetlib
HOST = "remote linux"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()
tn = telnetlib.Telnet(HOST)
tn.read_until("login: ")
tn.write(user + "\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\n")
tn.write("ls\n")
tn.write("exit\n")
print tn.read_all()
Regardless of the script content, running in windows I constently get
this SyntaxError:
C:\Python30>python c:\Python30\scripts\telnet.py
File "c:\Python30\scripts\telnet.py", line 20
print tn.read_all()
^
SyntaxError: invalid syntax
C:\Python30>
The same script works fine from linux.
I have also notices some other slight differences: this is my original
script that runs and completes but only if I comment out print. Also
tried to run debug without success in windows again this worked fine in
linux. To run this script in linux I also had to remove the b syntax in
the "b" in the perentesis
import telnetlib
# import pdb
HOST = "HP switch"
tn = telnetlib.Telnet(HOST)
tn.read_until(b'Password: ')
tn.write(b'password\n')
pdb.set_trace()
tn.read_until(b'HP switch# ')
tn.write(b' sh time\n')
tn.read_until(b'HP switch# ')
tn.write(b'exit\n')
tn.read_until(b'HP switch> ')
tn.write(b'exit\n')
tn.read_until(b'Do you want to log out [y/n]? ')
tn.write(b'y')
print tn.read_all()
Any guidance would be appreciated.
It looks like you're using Python 3.0 on Windows and Python 2.x on
Linux.
In Python 2.x, 'print' is a statement:
print tn.read_all()
In Python 3.x, 'print' is a function, so you need to write:
print(tn.read_all())
--
http://mail.python.org/mailman/listinfo/python-list