pexpect 相当于 Expect 的“send_user”

2023-12-09

作为我的延续上一个问题在 pexpect 中构建交互式选项菜单时,交互输入过滤器中的打印语句只有在交互完成后才会发送到 stdout。

该文档似乎没有包含与 Expect 中的 send_user 等效的方法,是否有任何解决方法可以将输出发送给用户,而不是从 pexpect 的交互方法中生成的子级?

bash-4.1$ cat testInputFilter.py
import pexpect

def input_filter(s):
    if s == b'\003':
        print('you pushed ctrl+c')
        return b'\r: r u going to kill me? press ctrl-d to exit!\r'
    elif s == b'\004':
        print('you pushed ctrl+d')
        return b'\r: ok, bye; exit\r'
    else:
        return s

proc = pexpect.spawn('bash --norc')
proc.interact(input_filter=input_filter)
proc.expect(pexpect.EOF)
bash-4.1$ ~/python/python36/bin/python3.6 testInputFilter.py | tee inputTest.txt
bash-4.1$
bash-4.1$ : r u going to kill me? press ctrl-d to exit!
bash-4.1$
bash-4.1$ : ok, bye; exit
exit
you pushed ctrl+c
you pushed ctrl+d
bash-4.1$

真的不知道为什么print()'ed 数据不会自动flush与交互时编辑spawn埃德孩子但你可以flush它明确地显示,所以它会实时显示:

print('something')
sys.stdout.flush()

或者直接使用(仅适用于 python3)

# .raw is not buffered
sys.stdout.buffer.raw.write('something')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pexpect 相当于 Expect 的“send_user” 的相关文章

随机推荐

  • 可以从设备内核调用 CULA 例程吗?

    因此 我试图看看使用 GPU 通过同时求解一组问题来求解小型超定方程组是否可以获得显着的加速 我当前的算法涉及使用 CULA Dense 库中的 LU 分解函数 该函数还必须在 GPU 和 CPU 之间来回切换以初始化和运行 CULA 函数
  • 通过 user32.dll 中的 SendInput 发送密钥

    我在用这个板作为演示目的的键盘 无论如何 长话短说 除了极少数情况外 一切正常 我发送击键发送输入函数位于 user32 dll 中 所以我的程序看起来像 static void Main string args Console Write
  • 确定 PHP 中的 Referer

    确定哪个页面发送或调用 通过 AJAX 当前页面的最可靠 最安全的方法是什么 我不想使用 SERVER HTTP REFERER 由于 缺乏 可靠性 我需要调用的页面仅来自我网站上的请求 编辑 我希望验证是否正在从我的网站上的页面调用执行一
  • ValueError:没有为任何变量提供渐变:['conv2d/kernel:0', 'conv2d/bias:0', 'conv2d_1/kernel:0', 'conv2d_1/bias:0',

    系统信息 Colab张量流2 2 0 描述当前行为 当我尝试解决自己的数据问题 即多标签语义分割 时 我遇到了这个错误 下面是代码 import tensorflow as tf import tensorflow keras backen
  • Springfox - 更改 swagger-ui 的路径

    现在大摇大摆的服务来自http localhost 8080 myContextRoot swagger ui html 我可以配置 swagger 及其要提供服务的资源吗http localhost 8080 myContextRoot
  • 从 Ansible 事实创建变量

    我有四个系统 在这些系统中我需要提取事实 然后将它们用作 jinja 2 模板上的变量 在 Ansible 中我有 vars office1 web01 myip 10 10 10 10 or fact peer 10 10 10 20 w
  • 无法使用 htmlunit 以编程方式登录 facebook

    我已经尝试过给出的代码HTMLunit Facebook 登录 and 使用 HTMLUnit 使用 Java 以编程方式登录 Facebook 不过我没有登录脸书 启用 JavaScript 后 webClient setJavaScri
  • GoogleTest CMake 无法识别 TEST_F:就像它无法识别 GTest 一样

    好吧 我承认 这是一个特殊的案例 当我们构建应用程序时 我们使用 make 因此我将测试包含在 src 下的测试文件夹中 然后 在与发布文件夹相同的级别 我们创建了一个单元测试文件夹 其中包含所有源文件和测试源文件 但我的IDE是CLion
  • 使用 ROCR 和 pROC (R) 计算平均 AUC 的差异

    我正在使用来自 SVM RFE 模型的交叉验证数据 10 倍重复 5 次 caret包裹 我知道caret包适用于pROC计算指标时包 但我需要使用ROCR包以获得平均 ROC 然而 我注意到使用每个包时的平均 AUC 值并不相同 所以我不
  • 使用 python 在 os.system 的参数中使用行“找不到命令”

    我是 python 新手 正在从事一些 xyz 项目 其中我正在获取第一天日期的报告 获取数据并将其重定向到 Linux 机器上的另一个文件中 这是我的代码 usr bin python import os cur date os pope
  • WCF Web 服务从 SoapUI 超时

    我在 WCF 项目 Net 4 0 中有以下内容 ServiceContract public interface EchoService OperationContract void Ping ServiceBehavior public
  • 使用 Spring Batch 的复杂 XML; StaxEventItemWriter ; Jaxb2Marshaller

    我需要使用 Spring Batch 编写稍微复杂的 XML 谁能帮我进行适当的 Spring 配置吗 以下是该过程所需的输出
  • 在 R 中查找排序向量中的值索引

    我在 R 中有一个由唯一整数组成的有序向量 我想找到最接近但小于或等于某个值的元素的索引 例如 对于向量4 8 15 16 23 42和搜索值17 我希望函数返回4 指数16 在Python中 我会使用bisect模块 R中有类似的东西吗
  • 即使使用 strip_cdata=False 之后,CDATA 也会在 lxml 中被剥离

    我有一个要求 我需要读取 XML 文件并用特定值替换字符串 XML 包含 CDATA 元素 我需要保留它 我尝试使用解析器并将 strip data 设置为 false 这是行不通的 需要帮助找出实现它的方法 import lxml etr
  • PostgreSQL 连接问题

    我的应用程序有一个非常奇怪的问题 有时在连接到 postgres 时会出现以下错误 这种情况的发生没有任何模式 当我运行一些广泛的硒测试时经常发生 警告 pg connect function pg connect 无法连接到 Postgr
  • 如何在 Web 应用程序前端强制 fetch 接受自签名证书?

    我正在制作一个简单的 Web 应用程序前端原型 它需要从我的服务器获取 JSON 数据 服务器本身工作正常 我可以单击链接 JSON 数据就会显示在浏览器中 但以下简单脚本失败了 fetch https x x x x 8000 MY UR
  • 安装前获取功能安装成本

    我们正在为您的安装制作自定义引导程序 外部 UI 我们希望提供一个 自定义安装 对话框 就像在 MSI 中一样 以允许用户选择他们想要安装或删除的功能 目前 我们能够从 MSI 数据库本身读取功能 以及其他功能详细信息 例如描述 通过在 M
  • 如何在 ASP.NET Core 中创建角色并将其分配给用户?

    我正在使用 ASP NET Core 默认网站模板 并将身份验证选择为 个人用户帐户 如何创建角色并将其分配给用户 以便我可以使用控制器中的角色来过滤访问权限 我的评论已被删除 因为我提供了我回答的类似问题的链接here 因此 这次我会更描
  • NSDecimalNumber 乘法奇怪

    ExclusivePrice 数量都是 NSDecimalNumbers NSDecimalNumber price exclusivePrice decimalNumberByMultiplyingBy quantity NSLog ex
  • pexpect 相当于 Expect 的“send_user”

    作为我的延续上一个问题在 pexpect 中构建交互式选项菜单时 交互输入过滤器中的打印语句只有在交互完成后才会发送到 stdout 该文档似乎没有包含与 Expect 中的 send user 等效的方法 是否有任何解决方法可以将输出发送