gpt4 book ai didi

python - 将终端输出捕获到 pandas 数据框中,而不创建外部文本文件

转载 作者:行者123 更新时间:2023-12-02 18:18:35 26 4
gpt4 key购买 nike

我正在使用ffmpeg的extract_mvs文件来生成一些文本信息。我会在终端中使用这样的命令:

/extract_mvs input.mp4 > output.txt

我想将此命令与 Popen 一起使用或 python 中的其他子进程,而不是 output.txt,数据直接传递到 pandas 数据框,而不实际生成文本文件。

这个想法是多次自动执行此操作,因此,我试图避免生成许多 .txt 文件,从而不得不 open()他们一一。

我想到了这样的事情:

import subprocess
cmd = ['./extract_mvs', 'input.mp4']
a = subprocess.Popen(cmd, stdout=subprocess.PIPE)
df = pd.read_csv(a.communicate()[0], sep=',')

但随后我收到错误:OSError: Expected file path name or file-like object, got <class 'bytes'> type

可以修复和扩展它,以便直接从子进程读取到 pandas 吗?

最佳答案

我找到了一种解决方法,使用 Keith 和一个 found here 的部分答案,将信息从字符串传递到 pandas 数据帧。

最终的工作代码是:

import sys
import subprocess
import pandas as pd

cmd = ['./extract_mvs', 'input.mp4']
a = subprocess.Popen(cmd, stdout=subprocess.PIPE)

if sys.version_info[0] < 3:
from StringIO import StringIO
else:
from io import StringIO

b = StringIO(a.communicate()[0].decode('utf-8'))

df = pd.read_csv(b, sep=",")

关于python - 将终端输出捕获到 pandas 数据框中,而不创建外部文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48946492/

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