从 Windows 中的子进程检索标准输出

发布于 2024-09-14 21:41:03 字数 387 浏览 7 评论 0原文

我可以使用 subprocess.Popen 调用 FFmpeg 并在发生时检索我需要的数据(以获取进度),但只能在控制台中进行。我环顾四周,发现您无法“实时”获取数据 当使用 pythonw 运行时。然而,等到进程完成来检索数据是没有意义的,因为我正在尝试将 PyQT GUI 包装在 FFmpeg 周围,这样我就可以拥有漂亮的进度条之类的东西。所以问题是,使用 pythonw 时可以从子进程调用中检索“实时”数据吗?

我还没有尝试简单地使用 py2exe 编译应用程序作为 Windows 应用程序,这可以解决问题吗?

I can call FFmpeg with subprocess.Popen and retrieve the data I need, as it occurs (to get progress), but only in console. I've looked around and seen that you can't get the data "live" when running with pythonw. Yet, waiting until the process finishes to retrieve the data is moot, since I'm trying to wrap a PyQT GUI around FFmpeg so I can have pretty progress bars and whatnot. So the question is, can you retrieve "live" data from a subprocess call when using pythonw?

I haven't tried simply compiling the application with py2exe yet as a windows application, would that fix the problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尘曦 2024-09-21 21:41:03
process = subprocess.Popen(your_cmd, shell=true, stdout=subprocess.PIPE,
                           stderr=subprocess.STDOUT)

count=0
while True:
    buff = process.stdout.readline()

    if buff == '':
        count += 1

    if buff == '' and process.poll() != None:
        break

    sys.stdout.write(buff)

process.wait()
process = subprocess.Popen(your_cmd, shell=true, stdout=subprocess.PIPE,
                           stderr=subprocess.STDOUT)

count=0
while True:
    buff = process.stdout.readline()

    if buff == '':
        count += 1

    if buff == '' and process.poll() != None:
        break

    sys.stdout.write(buff)

process.wait()
只怪假的太真实 2024-09-21 21:41:03

在对 subprocess.Popen 的调用中,使用 stdout=subprocess.PIPE。然后您将能够读取进程的 .stdout

In your call to subprocess.Popen, use stdout=subprocess.PIPE. Then you will be able to read from the process's .stdout.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文