[英]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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.