簡體   English   中英

使用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")

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM