使用 telnetlib - 反斜杠在 'tn.write' 中加倍(但在 'print' 中没有) - 如何在我的写入字符串中发送单个反斜杠
Using telnetlib - backslash is doubled in 'tn.write' (but not in 'print') - how to send single backslash in my write string
我正在尝试使用 Python 2.7(在 Windows 中)将字符串远程登录到服务器。
应用程序要求在字符串中使用反斜杠,如下所示:'E\myMacro\',因此它需要一个反斜杠,并以双反斜杠结尾。
我成功使用了 cmd 模块,但在 Python 2.7.
中失败了
代码如下:
import telnetlib
host = "myHost"
tn = telnetlib.Telnet(host)
tn.set_debuglevel(100)
data = tn.read_until("server")
myLine = r'E\myMacro'+'\\'
tn.write(myLine)
tn.close()
print myLine
这是我的输出:
Telnet(myHost,23): recv 'Welcome to the server'
Telnet(myHost,23): send 'E\myMacro\\'
E\myMacro\
我已经尝试了所有我能想到的排列来创建字符串,但都没有成功。
谁能解释我做错了什么?为什么 tn.write 和 print 有区别?
我已经解决了我的问题,最后证明这是一个非常简单的修复:
import telnetlib
host = "myHost"
tn = telnetlib.Telnet(host)
myLine = 'E\myMacro'
tn.write(myLine+'\\\r\n')
tn.write("exit\n")
我正在尝试使用 Python 2.7(在 Windows 中)将字符串远程登录到服务器。
应用程序要求在字符串中使用反斜杠,如下所示:'E\myMacro\',因此它需要一个反斜杠,并以双反斜杠结尾。
我成功使用了 cmd 模块,但在 Python 2.7.
中失败了代码如下:
import telnetlib
host = "myHost"
tn = telnetlib.Telnet(host)
tn.set_debuglevel(100)
data = tn.read_until("server")
myLine = r'E\myMacro'+'\\'
tn.write(myLine)
tn.close()
print myLine
这是我的输出:
Telnet(myHost,23): recv 'Welcome to the server'
Telnet(myHost,23): send 'E\myMacro\\'
E\myMacro\
我已经尝试了所有我能想到的排列来创建字符串,但都没有成功。
谁能解释我做错了什么?为什么 tn.write 和 print 有区别?
我已经解决了我的问题,最后证明这是一个非常简单的修复:
import telnetlib
host = "myHost"
tn = telnetlib.Telnet(host)
myLine = 'E\myMacro'
tn.write(myLine+'\\\r\n')
tn.write("exit\n")