我没有找到任何与多行数据交互的示例。在大多数示例中,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]。
我将如何做到这一点?
答案 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