2014-12-07 65 views
1

您好我想做ssh連接並解析一些數據。即時通訊使用的paramiko這裏是我的代碼部分:在python中逐行讀取輸出

ssh=ssh_pre.invoke_shell() 
ssh.send("display ospf peer brief \n") 
output = ssh.recv(10000) 

一切工作,直到這部分

buf=StringIO.StringIO(output) 
for lines in buf.read() 
    print lines 

這段代碼打印字符一行行。我想打印行。我該怎麼辦?

+0

你想要一次寫入所有緩衝區。不是嗎? – 2014-12-07 18:24:26

+0

我的主要目的是讀取從服務器返回的內容並找到特定的行。例如該行包含'apple'。如果我一行一行寫,我相信我可以做我想做的事 – zeto 2014-12-07 18:56:28

回答

1

問題是StringIO.read()返回一個字符串,一個字符序列,而不是行。試着這樣做:

buf=StringIO.StringIO(output) 
for lines in buf.read().split("\n"): 
    print lines 

這將通過新行分割你的緩衝區並在每個行的列表,而不是遍歷字符串中的每個個性。