Seu método atual significa que duas coisas estão acontecendo:
-
Você está vendo a saída do subprocesso
processos podem ter alguns resultados, aqui estão dois que podem ocorrer:
-
STDOUT
- informações do programa que está sendo executado -
STDERR
- informações sobre erros de avisos que o programa encontrou. Este é provavelmente aquele que está te incomodando.
O uso de opções no
subprocess
deve significar que você pode canalizar as saídas para/dev/null
(ou seja, o não aparecerá na saída):DEVNULL = open(os.devnull, 'wb') subprocess.call(['leafpad', filename + '.tsv'], stdout=DEVNULL, stderr=DEVNULL)
Esta é a versão para o python 2.4+, o bit que define
DEVNULL
pode não ser necessário em 3.3 +Note que mesmo se você remover esconder toda a saída, ele ainda aguardará o processo, então ....
-
-
e aguarda que os processos terminem antes de continuar
Se você quiser que o processo continue em segundo plano, use:
subprocess.Popen(['leafpad', filename + '.tsv'])
Popen
não espera a saída do processo, por isso continuará em segundo plano (ao contrário decall
) - para obter mais informações, consulte aqui .
Colocar essas 'correções' juntas deve dar a você:
DEVNULL = open(os.devnull, 'wb')
subprocess.Popen(['leafpad', filename + '.tsv'], stdout=DEVNULL, stderr=DEVNULL)
Para o python 2.4+ novamente
Você pode obter mais informações na documentação aqui .
Eu sou um amador em python cuja versão de leafpad
não dá erros, então se alguma coisa não funcionar por favor diga:)