Разница между stdout = subprocess.PIPE и stdout = PIPE - PullRequest
1 голос
/ 07 марта 2012

Так что название в значительной степени объясняет мой вопрос. В чем разница между stdout = subprocess.PIPE и stdout = PIPE? Оба исходят из модуля подпроцесса, но зачем использовать один поверх другого? Как вы используете stdout = PIPE? То есть захватить вывод? Или вывести его на экран? Я знаю только, как перенаправить его с помощью подпроцесса. PIPE.

, например

import subprocess
from subprocess import PIPE
p = subprocess.Popen(['samtools', 'view', 'bamfile.bam'], stdout=PIPE)

1 Ответ

4 голосов
/ 07 марта 2012
from subprocess import PIPE

делает доступным subprocess.PIPE под альтернативным именем PIPE; это эквивалентно:

PIPE = subprocess.PIPE

Следовательно, не имеет значения, какую версию вы выберете. subprocess.PIPE проясняет, откуда берется переменная, но немного длиннее.

...