问题标签 [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 - 是否可以在每个 STDERR 前面加上给定的字符串
我正在编写一个程序以通过串口与 linux 机器进行交互,并且我使用 pexpect.spawn 作为我的主要通信通道,如下所示:
我正在使用 sendline("cmd") 方法向机器发送命令,并在每个会话结束时解析日志文件以查看命令的行为方式。
我希望能够从我的日志文件中区分打印到 stdout 和 stderr 的行,但目前我无法做到这一点。这是一种使用给定字符串全局预先打印到 stderr 的每一行的方法吗?
python - paramiko 如何在流中搜索直到匹配模式
我想使用 paramiko 运行命令并在出现模式时退出。现在我使用pexpect.expect(..., pattern = [pattern1, pattern2,...])
有没有办法使用 paramiko?
python - 如何匹配其中包含正则表达式的字符串?
假设我有一个字符串
我正在尝试匹配它"?and"
。目前我正在这样做:
这是正确的用例re.escape
吗?它是否可以与我正在寻找的任何其他字符串文字一起使用,其中可能包含其他类型的正则表达式语法?
我的用例是带有参数 in pexpect.spawn.expect(pattern)
,其中输入模式可以是编译成正则表达式的字符串类型。在某些情况下,我正在搜索的内容可能看起来像一个正则表达式,但它实际上是我想要匹配的字符串文字。
python - 捕获 telnet 会话 - pexpect 和 telnetlib 太慢
我想从防火墙中提取连接表。在某些情况下,它可能超过 200k 行
“TCP 外部 46.33.77.20:53415 内部 10.16.25.63:80,空闲 0:00:04,字节 3230,标志 UIOB”
之类的。
我试图同时实现 pexpect 和 telnetlib 以获取这些表。不幸的是,超时和/或死亡都大于 40k。
期望实现:
telnetlib 实现:
有没有更强大的方法来获取这些信息?我用寻呼机值控制一次给定的行数(在运行它之前)。另外 - 我正在监控防火墙上的 cpu,所以我知道它正在显示连接。要么太多,要么太快,pexpect 或 telnetlib 跟不上。
谢谢。
python - 使用 pexpect 自动化 manage.py syncdb 对话
我正在尝试使用 pexpect 来自动化这个对话。下面也是使用 pexpect 的 python 程序。当我运行代码时......它等待输入“你想现在创建一个吗?(是/否):”然后超时并出现错误。它期待是或否。所以……我哪里做错了?字符串匹配第一个输入?
Python脚本:
shell - pexpect - 通过 ssh 运行 script.sh
我在通过 ssh 以编程方式运行本地脚本时遇到问题。
我不确定这是否是本地主机上的 shell 变量替换的问题。
手动运行时,
我得到了预期的输出,
CPU pctUser pctNice pctSystem pctIowait pctIdle
全部 11.21 0.00 1.50 0.31 86.98
0 0.00 0.00 0.00 0.00 100.00
1 3.00 0.00 1.00 0.00 96.00 ....
但我明白了
bash:/u02/splunk/splunk/etc/apps/Splunk_TA_nix/bin/cpu.sh:没有这样的文件或目录
运行以下代码时,
这些是打印输出,
/usr/bin/ssh monit@server1 'bash -s' < /u02/splunk/splunk/etc/apps/Splunk_TA_nix/bin/cpu.sh
初始 pexpect 命令输出:1
bash: /u02/splunk/splunk/etc/ apps/Splunk_TA_nix/bin/cpu.sh:没有这样的文件或目录
pexpect 撞到了 [pP] 密码行,所以我猜密码被正确传递了,
python - Python pexpect 没有按预期工作
我正在尝试编写一个程序来运行一些带有模拟用户数据的 shell 命令。
问题是,如果代码末尾没有这一行,shell 命令将无法正确运行:
我怎样才能摆脱那条线?
python - Python pexpect - TIMEOUT 进入回溯并退出
我是 python-pexpect 的新手。在 Tcl/expect 中,当我遇到超时时 - 我会回复消息并退出函数。我尝试使用发布的示例代码尝试类似的响应 http://pexpect.svn.sourceforge.net/viewvc/pexpect/trunk/pexpect/examples/sshls.py?revision=489&view=markup
我基于上面的这段代码——如果我提供了一个伪造的密码,我希望这只是超时,打印“错误!”,然后退出程序。但是当我运行它时 - 进入“回溯输出”(见下文),有人可以帮助我让程序打印“错误”并优雅地退出程序。
源代码:
python - 是否有在 python3 中工作的“期望”或类似期望的库的实现?
我想在 python3 中使用类似期望的模块。据我所知,pexpect 和 fabric 都不适用于 python3。我可以使用任何类似的软件包吗?(如果没有,有谁知道 py3 支持是否在任何项目的路线图上?)
完全重叠的功能集不是必需的。我认为我的用例在这里没有必要,但我基本上是在重新实现一个 Linux 预期脚本,该脚本使用一些配置提供的命令执行 telnet,但扩展了功能。
python - winpexpect 的行为不像 pexpect
我已经有这个问题好几天了,我不知道出了什么问题。
我有一个使用在 OSX 上运行的 pexpect 的简单 python 脚本,它启动 ssh-keygen 并自动点击返回以生成密钥对,它工作正常。我想在 Windows 上做同样的事情。为了在 Windows 上获取 ssh 和 ssh-keygen,我安装了 OpenSSH for Windows,它允许 ssh 从 cmd 提示符运行,作为使用部分 CYGWIN 支持文件的普通 Windows 程序。我将相同的脚本移植到 Windows 并将 pexpect 更改为 winpexpect 并使用对应的 winspawn 启动子进程,但它在第一个提示时停止。
我得到的输出是这样的:
在这里,它为所有收集数字灰尘的兔子提供了永恒的空间。
我也不明白为什么它在预期的冒号之后得到“:”。
是否有我可以使用的另一个模块可以让我更好地与 Windows 的 OpenSSH 进行通信?