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!