是否可以在 Popen 调用中捕获 stdin、stdout 和 stderr 以外的数据流?
Is it possible to catch data streams other than stdin, stdout and stderr in a Popen call?
我正在努力将程序 (samtools) 合并到管道中。 FYI samtools 是一个用于操作 SAM 格式的 DNA 序列比对的程序。它接受输入并通过 stdin 和 stdout 生成输出文件,因此很容易通过 pythons subprocess.Popen().
进行控制
当它运行时,它还会向控制台输出短消息 - 显然不使用标准输出 - 我想知道 pos 是否也可以捕获这些消息 - 可能通过获取 os 生成处理程序列表?
我想我的一般问题是,如果程序控制台输出不是来自 stdout,是否可以捕获它?os?谢谢。
除了 stdout 和 stderr 没有其他控制台输出(假设 samtools 不直接通过 tty 设备写入终端)。因此,如果输出没有被子进程 stdout 捕获,它一定已经被写入 stderr,也可以使用 Popen()
和 stderr=subprocess.PIPE
并检查 stderr
属性来捕获结果过程对象。
我正在努力将程序 (samtools) 合并到管道中。 FYI samtools 是一个用于操作 SAM 格式的 DNA 序列比对的程序。它接受输入并通过 stdin 和 stdout 生成输出文件,因此很容易通过 pythons subprocess.Popen().
进行控制当它运行时,它还会向控制台输出短消息 - 显然不使用标准输出 - 我想知道 pos 是否也可以捕获这些消息 - 可能通过获取 os 生成处理程序列表?
我想我的一般问题是,如果程序控制台输出不是来自 stdout,是否可以捕获它?os?谢谢。
除了 stdout 和 stderr 没有其他控制台输出(假设 samtools 不直接通过 tty 设备写入终端)。因此,如果输出没有被子进程 stdout 捕获,它一定已经被写入 stderr,也可以使用 Popen()
和 stderr=subprocess.PIPE
并检查 stderr
属性来捕获结果过程对象。