gpt4 book ai didi

Python捕获子进程输出

转载 作者:太空宇宙 更新时间:2023-11-04 08:03:11 26 4
gpt4 key购买 nike

我正在开发一个从音频流中学习的 tensorflow 项目。我正在使用子进程模块(使用 Popen)和 FFMPEG 从 mp3 中读取音频数据。我使用 Popen() 成功打开了音频文件,并且可以通过 stdout 打印输出。但是,我似乎无法捕捉到它。

我已经尝试了 read()communicate()

我正在学习教程 here

read() 什么都不返回,communicate() 抛出错误:AttributeError: 'file' object has no attribute 'communicate'

这是我的代码:

for image_index, image in enumerate(image_files):
count += 1
image_file = os.path.join(folder, image)
try:
output_files = "output/output" + str(count) + ".png"
if image_file != 'train/rock/.DS_Store':
command = [FFMPEG_BIN,
'-i', image_file,
'-f', 's16le',
'-acodec', 'pcm_s16le',
'-ar', '44100',
'-ac', '2',
output_files]
pipe = sp.Popen(command, stdout=sp.PIPE)
print (pipe)
raw_audio = pipe.stdout.communicate(88200*4)

我什么都试过了herehere

最佳答案

Popen 对象没有stdout 通信:

pipe.communicate(str(88200*4))

同时通过 stdout 捕获 stderr:

 pipe = sp.Popen(command, stdout=sp.PIPE, stderr=sp.STDOUT, stdin=sp.PIPE)
raw_audio, _ = pipe.communicate(str(88200*4).encode())
print(raw_audio)

关于Python捕获子进程输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36364956/

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