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)