stdout=subprocess.PIPE 和 stdout=PIPE 的区别

2 python subprocess pipe

所以标题几乎解释了我的问题。stdout=subprocess.PIPE 和 stdout=PIPE 有什么区别?两者都来自 subprocess 模块,但为什么要使用一个而不是另一个?你如何使用标准输出=PIPE?即捕获输出?还是打印到屏幕上?我只知道如何使用 subprocess.PIPE 重定向它。

例如

import subprocess
from subprocess import PIPE
p = subprocess.Popen(['samtools', 'view', 'bamfile.bam'], stdout=PIPE)
Run Code Online (Sandbox Code Playgroud)

phi*_*hag 5

from subprocess import PIPE
Run Code Online (Sandbox Code Playgroud)

使得subprocess.PIPE下的备选名称可用PIPE; 它相当于:

PIPE = subprocess.PIPE
Run Code Online (Sandbox Code Playgroud)

因此,您选择哪个版本并不重要。subprocess.PIPE明确变量来自何处,但稍长。