2014-06-12 54 views
0

在使用pxssh模塊的sendline方法時尋找一種方法來返回stdout字符串。這是一個代碼示例。爲什麼pxssh .before方法返回分隔符?

import pxssh 
s = pxssh.pxssh() 
s.force_password = True 
s.login('host', 'user', 'password') 
s.prompt() 
print(s.before) 

我得到一個返回分隔符的字符串。這是可以避免的嗎?如果可能,我想跳過使用正則表達式將其清理爲可用字符串的步驟。

>>> print(s.before) 
b'uptime\r\n 11:53:28 up 14 days, 19:13, 1 user, load average: 0.22, 0.19, 0.17\r\n' 
+0

你想要什麼呢?一個CRLF被刪除的字符串?一個列表,每行一個字符串?有選項的事實解釋了爲什麼輸出從遠程主機接收到。 – chepner

+0

正確chepner。我希望輸出讀取'正常運行時間11:53:28最多14天,19:13,1個用戶,平均負載:0.22,0.19,0.17',如果該功能可以用這種方法。 – jonnymac

回答

0

我想你只是需要修改字符串後,你檢索它。

print(s.before.replace("\r\n", "")) 
+0

這讓我在正確的賽道chepner! >>> s.before.replace(「\ r \ n」,「」)Traceback(最近一次調用的最後一個):文件「」,第1行, TypeError:期望的字節,bytearray或緩衝區兼容對象>>> pxssh.before方法返回一個字節對象。 >>> out = s.before >>> print(out)b'uptime \ r \ n 11:53:28 up 14 days,19:13,1 user,load average:0.22,0.19,0.17 \ r \ n '>>> type(out)解碼對象讓我想要成爲我。 >>> print(out.decode('utf-8'))uptime 11:53:28 up 14 days,19:13,1 user,load average:0.22,0.1 – jonnymac