Использование telnetlib - обратная косая черта удваивается в 'tn.write' (но не в 'print') - как отправить одну обратную косую черту в моей строке записи - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь подключить строку к серверу, используя 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 голосов
/ 25 февраля 2019

Я решил свою проблему, в итоге это оказалось очень простым решением:

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