gpt4 book ai didi

python - python 无法获取标准输出数据

转载 作者:太空宇宙 更新时间:2023-11-03 17:50:12 24 4
gpt4 key购买 nike

在编码视频时,我试图使用 HandBrakeCLI 程序获取命令的 STDOUT 的输出。我似乎无法让 python 在标准输出流上处理其输出。我尝试过以下代码:

import subprocess
import sys

encode = subprocess.check_output("HandBrakeCLI -i video.mkv -o out.mp4", shell=True, stderr=subprocess.STDOUT, universal_newlines=True)
print(encode)

这和我也尝试过的没有打印任何内容:

import subprocess
import sys

encode = subprocess.Popen("HandBrakeCLI -i video.mkv -o out.mp4", stdout=subprocess.PIPE, stderr = subprocess.PIPE, shell=True, universal_newlines=True)
print(encode.stdout.read())

如前所述,两者都不会产生任何输出。该应用程序将在 bash 编码时更新单行文本。我不确定这种类型的数据流是否会导致 python 出现问题。

最佳答案

HandBrakeCLI 似乎会根据是否打印到终端来更改其输出。要么指定一个命令行标志来强制进行必要的输出,要么您可以通过直接使用 pexpectpty 模块提供伪 tty(如果您的系统支持它)来欺骗它.

有关如何使用 pexpectpty 模块从子进程获取输出的代码示例:

关于python - python 无法获取标准输出数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29202371/

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