2014-12-03 51 views
0

我還沒有找到任何與多行數據交互的示例。在大多數例子中,pexpect在返回或產卵之前尋找單個值。從pexpect expect數據創建列表

對於我的情況,我期待多行,並希望將每個附加到列表。我目前無法弄清楚如何去做。

這是我到目前爲止有:

... 
active_hosts = [] 

host_discovery = pexpect.spawn(nmap_scan) 
active_hosts += pexpect.expect(substring) 
... 

我運行數據的輸出應該多行掃描。我如何能夠捕獲每行附加到我的列表?

[email protected]:~# nmap blah blah blah 
host1 
host2 
host3 

希望在達到超時或EOF時有[host1,host2,host3]。

我該怎麼做呢?

+0

你真的需要'pexpect'這個?如果你只是想獲得'nmap blah blah blah'的輸出結果,那麼使用Subprocess你會更好 – BorrajaX 2014-12-03 22:49:37

回答

1

使用subprocess

import subprocess 
child = subprocess.Popen('nmap_command',stdout=subprocess.PIPE,shell=True) 
output = child.communicate()[0] 
# do your stuff with output 

更多關於子看看這裏:subprocess