subprocesso python oculta o stdout e aguarde a conclusão

Eu tenho este código:

def method_a(self):
    command_line = 'somtoolbox GrowingSOM ' + som_prop_path
    subprocess.Popen(shlex.split(command_line))
    ......

def method_b(self): .....
....

e como todos vocês vêem, method_a tem um subprocesso que está chamando o programa somtoolbox. Mas este programa tem um longo stdout e quero ocultá-lo. Eu tentei:

subprocess.Popen(shlex.split(command_line), stdout=subprocess.PIPE)

Mas retornou esta frase:

cat: record error: Broked Pipe   

(esta é uma tradução da frase em português: "cat: erro de gravação: Pipe quebrado") (eu sou do brasil)

Além disso, eu tenho outros métodos (como o method_b), que são chamados após o method_a, e esses métodos estão em execução antes do subprocesso concluir o processo.

Como posso ocultar o stdout (e não o quero em lugar nenhum) e fazer com que o outro código aguarde o subprocesso concluir a execução?

Obs: O somtoolbox é um programa java, que fornece a saída longa para o terminal. Tentou:

outputTuple = subprocess.Popen(shlex.split(command_line), stdout = subprocess.PIPE).communicate()

mas retorno contínuo de saída para o shell. Socorro!

questionAnswers(2)

yourAnswerToTheQuestion