从pexpect期望数据创建列表

时间:2014-12-03 22:46:05

标签: python pexpect

我没有找到任何与多行数据交互的示例。在大多数示例中,pexpect在返回或生成之前会查找单个值。

对于我的情况,我期待多行,并希望将每个行附加到列表中。我目前无法弄清楚如何做到这一点。

这是我到目前为止所拥有的:

...
active_hosts = []

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

我正在运行的扫描应输出多行数据。我怎样才能捕获附加到列表中的每一行?

limited@kali:~# nmap blah blah blah
host1
host2
host3

希望在达到超时或EOF时拥有[host1,host2,host3]。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:1)

使用subprocess

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

有关子流程的更多信息,请查看此处:subprocess