Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python子进程Popen是否具有可查找的管道?_Python_Subprocess - Fatal编程技术网

Python子进程Popen是否具有可查找的管道?

Python子进程Popen是否具有可查找的管道?,python,subprocess,Python,Subprocess,我正在使用subprocess.Popen从Python调用二进制文件。我正在传递stdout=subprocess.PIPE,以便将输出直接导入Python程序,并告诉程序将其输出发送到stdout而不是文件。看起来我调用的二进制文件希望能够在输出文件中查找。在这条管道上找不到,我得到一个错误 我可以用Python创建一个临时文件,并告诉二进制文件写入该文件,然后读取它,但这会大大降低速度 有没有关于将某种内存缓冲区传递给二进制文件以便程序可以编写和查找的建议,但我可以在刷新后立即执行?这是一

我正在使用subprocess.Popen从Python调用二进制文件。我正在传递stdout=subprocess.PIPE,以便将输出直接导入Python程序,并告诉程序将其输出发送到stdout而不是文件。看起来我调用的二进制文件希望能够在输出文件中查找。在这条管道上找不到,我得到一个错误

我可以用Python创建一个临时文件,并告诉二进制文件写入该文件,然后读取它,但这会大大降低速度


有没有关于将某种内存缓冲区传递给二进制文件以便程序可以编写和查找的建议,但我可以在刷新后立即执行?

这是一个非常困难的情况-行为良好的unix工具不应该在标准输出上查找。我认为一个临时文件是你唯一的实际选择。这个程序需要一个实际的文件参数,但接受-作为“使用标准输出”的意思。它不能很好地使用它,但它至少尝试在轰炸前写入一半的文件@乔-第二次尝试破解,请参见答案中的我的编辑!你知道该计划试图通过寻找来实现什么吗?这是什么节目?在Python脚本中如何重定向stdout无关紧要,因为从派生程序的角度来看,stdout及其接口将保持不变。它是一个文件格式转换器。我认为,它正在寻求修复一些块头。我用另一种方法解决了这个问题。