gpt4 book ai didi

python - 从 pexpect 中提取 stderr

转载 作者:太空狗 更新时间:2023-10-29 21:09:50 32 4
gpt4 key购买 nike

我的问题很简单:我可以 expect() 使用 pexpect 查看 stderr 上的特定输出吗?似乎 pexpect.spawn() 只能用于期望标准输出上的输出。

乌托邦式的例子:

导入预期
child = pexpect.spawn(...)
child.expect("嗨", fd=pexpect.STDERR)

或者在散文中,“期待 stderr 上的字符串‘hi’”。

我没有在文档中找到任何关于此类功能的提及,但我确实注意到 child 实例具有 stderr 属性...

半实现我想要的一个 hack 是在 spawn 参数中将 stderr 重定向到 stdout,然后我们可以使用常规 expect()。一定有更好的方法吗?

干杯

最佳答案

为了后代,并基于 Thomas K 的评论,这似乎可以满足您的需求:

import os
import subprocess
from pexpect import fdpexpect

program = ['/path/to/command', '--arg1', 'value1', '--arg2', 'value2']
devNull = open(os.devnull, 'w')
command = subprocess.Popen(program, stdout=devNull,
stdin=subprocess.PIPE, stderr=subprocess.PIPE)
child = fdpexpect.fdspawn(command.stderr)
child.expect('hi')

关于python - 从 pexpect 中提取 stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27179383/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com