p1 = Popen(['tar', '-cvf', '-', 'path_to_archive'], stdout=PIPE)
p2 = Popen(['split', '-b', '20m', '-d', '-a', '5', '-',
    "'archive.tar.split'"], stdin=p1.stdout, stdout=PIPE)
output = p2.communicate()[0]
Any way to execute a piped command in Python using subprocess module, without using shell=True?