问题标签 [pexpect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - pexpect返回windows风格的行尾
如果有人pexpect
在 linux 上使用过,您是否注意到pexpect
在使用其readline()
功能时返回窗口样式行尾?你知道摆脱这种情况的方法吗?
python - pexpect有什么替代品吗?
我正在使用 python pexpect 编写一个脚本来在远程机器上执行另一个脚本。在正常情况下它工作正常,但如果time.sleep
远程脚本中有 a ,它会失败。
我想到达远程机器,在后台启动脚本然后离开。这可能吗 ?
有人可以提出替代方案或让我知道如何解决这个问题吗?
cron - Cron - 调用外部脚本失败(环境变量初始化)
一个部分目标是定期连接到一系列主机并将一些日志同步回中央服务器的脚本在手动调用它时可以完美地工作,
但是,当通过 cron 调用时,在远程 rsync 步骤中以 .EOF 结束,
返回
可能是什么原因造成的?谢谢
python - pexpect模块的sendline方法的难点
如果我期望面试问题中有一些字符串,我需要通过给出预定义的答案来自动化面试过程。
我正在使用 pexpect.spawn 启动子进程并完成面试。
我的一部分代码是:
我正在使用 child.logfile=fout 将面试过程保存在一个文件中
fout 的一部分是:
如上所示,它第一次匹配新行,因此出现注释“无效输入:”。所以它两次问同一个问题,然后它接受“测试”作为答案。
我该怎么做才能让我的答案第一次被接受?
有什么与 child.expect 中的参数“超时”相关的吗?
我曾尝试使用诸如 timeout=0、timeout=-1 等选项。但没有任何效果。
python - Pexpect spawn.expect() 在检测进程输出时似乎不可靠
我有一个类,ServerManager
,它使用pexpect
. 不幸的是,没有更清洁的方法可以做到这一点。有问题的过程不提供 API。
ServerManager
需要在识别特定模式时监控流程的输出和触发事件。因为有多个这样的模式需要监控,并且pexpect
'spawn.expect()
阻塞了当前线程,所以这些“侦听器”被分离到单独的线程中,当它们匹配到它们的模式时,它们与主线程交互。
一个这样的例子是等待用户连接/断开连接:
问题是“连接”和“断开”事件的触发非常不可靠。我创建了一个实例ServerManager
并连接/断开连接 10 次(每个操作之间等待大约 10 秒),numberOfUsers
在每次连接/断开连接后检查。经过多次试验,它最多只更新了大约 1/8 的时间。
这是线程安全的问题pexpect
吗?鉴于我与进程交互的唯一方法是监视其命令行输出,是否有更好的方法来监视此类事件?
networking - 在网络设备上执行远程命令比期望模块更好的方法
我目前有一个使用pexpect python 模块的实现,它与 Juniper、Cisco 路由器交互。它生成一个子应用程序并运行“显示版本”之类的命令并记录输出。
我正在寻找一种更好的方法来执行这个过程,因为如果交换机端发生了一些变化(操作系统升级后提示中的空格或冒号),那么程序将无法运行。我认为瞻博网络有执行此类操作的 API,但我认为思科没有。我还需要将此扩展到其他交换机,例如 HP 等。
有没有一种通用的方法可以解决这个问题?
如果需要,如果存在比 pexpect 更标准的方法,我也不介意为不同的设备编写不同的代码。
谢谢
python - Python:如何在没有 OpenSSH GUI 密码提示的情况下在 Ubuntu 上使用 pexpect 启动 scp?
我正在尝试在 Ubuntu 上自动执行scp
命令。pexpect
但是,我不断收到标题为“OpenSSH”的密码 GUI 提示。如何禁用此行为并改用命令行提示?
python - 从 pexpect 运行 Scilab
我正在尝试使用 pexpect 模块和以下代码运行 scilab:
当我做
情节出现了。但是当我这样做时
其次是
它给了我以下输出:
如何对上述输出进行清理以仅获得上面的 3. 6. ?
python - pexpect 在不同的窗口中输出
现在我正在一个项目中工作,其中测试脚本必须连接许多(3-10)台远程计算机(SSH 并做一些事情)。我开始使用 pexpect,它就像一个按钮一样简单。它工作正常。
我想在测试期间查看通信。我知道可以将日志重定向到屏幕。但在这种情况下,日志(来自不同的计算机)是混合的。我想要的是为每个新的 spawn 对象打开新的终端窗口(或 consol 或其他)。在这种情况下,我可以看到不同窗口中的所有通信。此外,我想在每个窗口中保留 spawn.interact() 的可能性。我觉得这是可能的,但我不知道如何。我认为一些文件指针(或管道)应该以某种方式传递到新窗口(?)(SecureCRT 知道这样的事情,它有选项卡式控制台窗口并且可以单独访问它们,但它是一个商业产品)
或者让我让问题更简单。如果这样做,我可以在新窗口中打开一个新 shell:
p=Popen(["cygstart", "bash"])
如何从我的脚本(父级)读取和写入这个 shell 以在这个新窗口中看到它?
如果你们中的一个人能指出我正确的方向,我将不胜感激。
如果您告诉我(在 Google 上)要阅读或查找什么就足够了,因为我没有发现任何此类问题。环境是cygwin。
提前致谢
br:drv
python - 如何让 Fabric 自动(而不是用户交互地)与 shell 命令交互?与 pexpect 结合?
寻求意味着让Fabric自动(而不是用户交互地)与 shell 命令交互(不仅请求密码,而且在没有“stdin/interactive override”之类apt-get install -y
的可用时请求用户输入)。
这个问题连同这些Fabric 文档表明 Fabric 只能将交互性“推送回”给运行 Fabric 程序的人类用户。寻求在没有任何人的情况下完全自动化。还没有要解决的“真正的”当前问题,只是为可能的未来障碍做准备。
如果 Fabric 不能自动处理所有标准输入/提示,与pexpect (或类似的替代机制)结合可能有用吗?希望它不需要是“非此即彼”之类的东西。如果适用,为什么不在同一程序/自动化中同时利用两者(pexpect 和 Fabric)?