2011-08-16 12 views
11

से उत्पादन को दबाएं आप आउटप्रोसेस से आउटपुट को कैसे रोकते हैं। आउटपुट होने से रोकें? प्रिंटिंग कभी-कभी धीमी हो सकती है यदि इसका कोई बड़ा सौदा हो।subprocess.Popen

उत्तर

20

आप पूरी तरह से इसे फेंक करना चाहते हैं:

import subprocess 
import os 
with open(os.devnull, 'w') as fp: 
    cmd = subprocess.Popen(("[command]",), stdout=fp) 

आप अजगर 2.5 का उपयोग कर रहे हैं, तो आप from __future__ import with_statement की आवश्यकता होगी, या बस with प्रयोग नहीं करते।

10

अजगर में आप उत्पादन को दबाने के लिए subprocess.DEVNULL का उपयोग 3.3+ सकता है,:

from subprocess import DEVNULL, STDOUT, check_call 

check_call([cmd, arg1, arg2], stdout=DEVNULL, stderr=STDOUT) 

stderr=STDOUT निकालें यदि आप भी stderr को दबाने के लिए नहीं करना चाहती।

संबंधित मुद्दे