web-dev-qa-db-ja.com

subprocess.check_output()内のstderrを抑制します

Stderrストリーム(2> /dev/nullに似たもの)を無視する方法を見つけようとしています。

output = subprocess.check_output("netstat -nptl".split())

これを実現するには、上記のコマンドに何を追加すればよいですか?

31
Naftaly

リダイレクトするようにsubprocessに指示してください:

import os
import subprocess

with open(os.devnull, 'w') as devnull:
    output = subprocess.check_output("netstat -nptl".split(), stderr=devnull)

Python 3は subprocess.DEVNULLオブジェクト 、自分でこれを開く必要がなくなります。

39
Martijn Pieters