stdout=およびstderr=パラメータを使用して、選択したファイル記述子にsubprocess.call()転送stdoutまたは転送できます。stderrだから多分このようなもの:
import os
devnull = open(os.devnull, 'w')
subprocess.call(shlex.split(
'/usr/local/itms/bin/iTMSTransporter -m lookupMetadata '
'-apple_id %s -destination %s' % (self,apple_id, self.destination)),
stdout=devnull, stderr=devnull)
subprocess.PIPEパイプから読み取っていない場合にを使用すると、大量の出力が生成される場合にプログラムがブロックされる可能性があります。
アップデート
@yanlendがコメントで言及しているように、Pythonの新しい(3.x)バージョンには、subprocess.DEVNULLこの問題をより便利でポータブルな方法で解決することが含まれています。その場合、コードは次のようになります。
subprocess.call(shlex.split(
'/usr/local/itms/bin/iTMSTransporter -m lookupMetadata '
'-apple_id %s -destination %s' % (self,apple_id, self.destination)),
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)