相关疑难解决方法(0)

Python线程化多个bash子进程?

如何使用线程和子进程模块生成并行bash进程?当我启动线程时,第一个答案就在这里:如何在Python中使用线程?,bash进程按顺序而不是并行运行.

python multithreading subprocess

34
推荐指数
2
解决办法
4万
查看次数

Python:并行运行子进程

我有以下代码将md5sums写入日志文件

for file in files_output:
    p=subprocess.Popen(['md5sum',file],stdout=logfile)
p.wait()
Run Code Online (Sandbox Code Playgroud)
  1. 这些是并行写的吗?即如果md5sum对其中一个文件花费很长时间,那么在等待前一个文件完成之前是否会启动另一个文件?

  2. 如果上面的答案是肯定的,我可以假设写入日志文件的md5sums的顺序可能因md5sum对每个文件的使用时间而有所不同吗?(有些文件可能很大,有些文件很小)

python subprocess

21
推荐指数
3
解决办法
6万
查看次数

Python子进程并行

我希望能够并行运行多个进程,并且能够随时使用stdout.我该怎么办?我是否需要为每个subprocess.Popen()呼叫运行线程,什么?

python subprocess

18
推荐指数
2
解决办法
2万
查看次数

为什么两个子流程会相互阻止工作?

我遇到了让两个子进程一起运行的问题.

第一个子流程是视频流的转码:

subprocess.Popen("ffmpeg -i input output", shell=True)
Run Code Online (Sandbox Code Playgroud)

我需要在程序的后台运行,将视频从我的IP摄像机转码为mjpeg流.

第二个子进程是Openalpr守护进程,它查看mjpeg流并返回它在流中看到的汽车牌照.

 subprocess.Popen("alprd -f", shell=True)
Run Code Online (Sandbox Code Playgroud)

以下是尝试运行两个子进程的python测试代码示例:

import subprocess
subprocess.Popen("ffmpeg -i input output", shell=True)
subprocess.Popen("alprd -f", shell=True)
Run Code Online (Sandbox Code Playgroud)

当我这样做时,ffmpeg转码工作正常,我可以查看转码的mjpeg流,我可以在控制台中看到ffmpegs详细输出.但是,alprd守护程序似乎没有按预期返回任何数字牌照.实际上,我在控制台窗口中看不到alprd的任何输出.

如果我只使用一个子进程运行上面的代码就可以了

import subprocess
subprocess.Popen("ffmpeg -i input output", shell=True)
Run Code Online (Sandbox Code Playgroud)

工作正常,同样如下:

import subprocess
subprocess.Popen("alprd -f", shell=True)
Run Code Online (Sandbox Code Playgroud)

如果我运行上面两个工作代码片段中的任何一个 - 同时在另一个Linux终端中运行另一个命令,它一切正常.

我显然不了解子流程的内容,它们之间显然是相互冲突的,但任何人都可以解释发生了什么以及如何解决问题?

谢谢!

python subprocess

6
推荐指数
1
解决办法
75
查看次数

标签 统计

python ×4

subprocess ×4

multithreading ×1