使用telnetlib-在'tn.write'中将反斜杠加倍(但在'print'中则不加倍)-如何在我的写入字符串中发送单个反斜杠

时间:2019-01-10 12:24:15

标签: python backslash telnetlib

我正在尝试使用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之间有区别?

1 个答案:

答案 0 :(得分:0)

我已经解决了我的问题,最后证明这是一个非常简单的解决方法:

import telnetlib
host = "myHost"
tn = telnetlib.Telnet(host)
myLine = 'E\myMacro'
tn.write(myLine+'\\\\\r\n')
tn.write("exit\n")