【问题标题】:pexpect output in different windowpexpect 在不同的窗口中输出
【发布时间】:2011-11-10 06:48:36
【问题描述】:

现在我在一个项目中工作,其中测试脚本必须连接许多(3-10)台远程计算机(SSH 并做一些事情)。 我开始使用 pexpect,它就像一个按钮一样简单。它工作正常。

我想在测试期间查看通信。我知道可以将日志重定向到屏幕。但在这种情况下,日志(来自不同的计算机)是混合的。 我想要的是为每个新的 spawn 对象打开新的终端窗口(或 consol 或其他)。在这种情况下,我可以看到不同窗口中的所有通信。此外,我想在每个窗口中保留 spawn.interact() 的可能性。 我觉得这是可能的,但我不知道如何。我认为一些文件指针(或管道)应该以某种方式传递到新窗口(?) (SecureCRT 知道这样的事情,它有选项卡式控制台窗口,可以单独访问它们,但它是一个商业产品)

或者让我让问题更简单。 如果这样做,我可以在新窗口中打开一个新 shell:

p=Popen(["cygstart", "bash"])

如何从我的脚本(父级)读取和写入这个 shell 以在这个新窗口中看到它?

如果你们中的任何一位能指出我正确的方向,我将不胜感激。

如果您告诉我要阅读或查找的内容(在 Google 上)就足够了,因为我没有发现任何此类问题。 环境是cygwin。

提前致谢

br:drv

【问题讨论】:

  • 我知道这已经很老了,但你有没有得到这个工作?我基本上需要做这件事。

标签: python window new-operator pexpect


【解决方案1】:

您是否尝试过使用 logfile 参数?

child = pexpect.spawn('some_command')
mylog = open('/tmp/mylog','w')
child.logfile = mylog

这将自动记录所有与文件的通信,包括您在调用 spawn.interact() 后输入的命令

网站上提供更多信息:http://pexpect.sourceforge.net/pexpect.html 搜索“日志文件”以查找相关文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    相关资源
    最近更新 更多