Вы должны использовать subprocess.PIPE
, также, чтобы разделить команду, вы должны использовать shlex.split()
для предотвращения странного поведения в некоторых случаях:
from subprocess import Popen, PIPE
from shlex import split
p1 = Popen(split("tar -c mydir"), stdout=PIPE)
p2 = Popen(split("md5sum"), stdin=p1.stdout)
Но чтобы создать архив и сгенерировать его контрольную сумму, вы должны использовать встроенные модули Python tarfile
и hashlib
вместо вызова команд оболочки.