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>


There's the clue:

In python 3.X, print is a function call
 print(tn.read_all() )
with lots of formatting and line-ending features

In python 2.X, print is a statement:
  print tn.read_all()

If you want one script to work for both Windows and Linux, then you should probably be running the same version of Python on each. At least both versions should be on
the same side for the Python 2.x/3.x version change.


Gary Herron




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.

Delrey
--
http://mail.python.org/mailman/listinfo/python-list

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to