args ='python -c "import time; time.sleep(99)"'p = subprocess.Popen(args, shell=True, stdout=subprocess.PIPE)try: p.communicate(timeout=1)except:passp.kill()# terminates the shell process -- not python.exewithp:pass# stdout.close() blocks until python.exe exits The Windows implementati...
import subprocess try: process = subprocess.Popen(['your_command'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() finally: process.stdout.close() process.stderr.close() 增加错误处理: 在代码中加入适当的错误处理逻辑,以便在出现 BrokenPipeError 时能够优雅地...
This is because you shouldn't use "shell pipes" in the command passed tosubprocess.Popen, you should use thesubprocess.PIPElike this: from subprocess import Popen, PIPE p1 = Popen('cat file', stdout=PIPE) p2 = Popen('sort -g -k 3', stdin=p1.stdout, stdout=PIPE) p3 = Popen('head...
这个错误通常发生在FFmpeg在处理数据流时,输入或输出被意外中断的情况下。这可能是由于连接中断、缓冲区溢出或其他原因引起的。 一种常见的解决方法是使用try-except语句来捕捉“Broken Pipe”错误。例如,在使用subprocess库运行FFmpeg命令时,我们可以将命令放在try块中,并在except块中捕捉“Broken Pipe”错误。这样一来,...
subprocess.DEVNULL = -3 重定向到 /dev/null,即丢弃信息 开始正餐 我们先来看这样一个需求: 脚本A 需调用一个外部程序 B 来做一些工作,并获取 B 的 stdout 输出 实现方式一: import subprocess child = subprocess.Popen(['./B'], stdout=subprocess.PIPE) ...
这是因为你不应该在传递给 subprocess.Popen 的命令中使用“shell pipes”,你应该像这样使用 subprocess.PIPE: from subprocess import Popen, PIPE p1 = Popen('cat file', stdout=PIPE) p2 = Popen('sort -g -k 3', stdin=p1.stdout, stdout=PIPE) p3 = Popen('head -20', stdin=p2.stdout, stdou...
今天,一个在windows上运行良好的python脚本放到linux下报错,提示错误 BrokenPipeError: [Errno 32]Broken pipe。经调查是subprocess.run方法的timeout参数在linux上的表现和windows上不一致导致的。 try: ret = subprocess.run(cmd, shell=True, check=True, timeout=5, stdout=subprocess.PIPE, stderr=subproc...
importsubprocessimportcv2 1. 2. 2.2 创建一个FFMPEG进程 接下来,我们需要通过subprocess库创建一个FFMPEG进程。我们可以使用以下代码来实现: ffmpeg_cmd=['ffmpeg','-i','input.mp4','-f','rawvideo','-pix_fmt','rgb24','-']process=subprocess.Popen(ffmpeg_cmd,stdout=subprocess.PIPE,stderr=subprocess...
今天,一个在windows上运行良好的python脚本放到linux下报错,提示错误 BrokenPipeError: [Errno 32]Broken pipe。经调查是subprocess.run方法的timeout参数在linux上的表现和windows上不一致导致的。 try: ret = subprocess.run(cmd, shell=True, check=True, timeout=5, ...
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) Preparing to unpack .../python3-distutils_3.6.5-3~16.04.york0.2_all.deb ... Unpacking python3-distutils (3.6.5-3~16.04.york0.2) ... dpkg: error processing archive /var/cache/apt/archives/python3-distutils_3.6.5-3~...