是否有可能在Popen调用中捕获除stdin, stdout和stderr之外的数据流?



我正在将一个程序(samtools)合并到管道中。samtools是一个程序,用于操作DNA序列比对是在一个SAM格式。它通过stdin和stdout接受输入并生成输出文件,因此很容易通过python的subprocess.Popen()进行控制。

当它运行时,它还向控制台输出短消息—显然不是使用stdout—我想知道是否也有可能捕获这些消息—可能通过获得操作系统生成的处理程序列表?

我想我的问题一般是如果有可能捕获程序控制台输出,如果它不是来自标准输出?谢谢你。

除了stdout和stderr之外没有其他控制台输出(假设samtools没有通过tty设备直接写入终端)。因此,如果没有使用子进程标准输出捕获输出,则必须将其写入标准错误,也可以使用Popen()stderr=subprocess.PIPE并检查结果进程对象的stderr属性来捕获输出。

相关内容

  • 没有找到相关文章

最新更新