(Basato sul 2 ° edit)
Se non si desidera disattivare tutti gli output, si può provare a essere specifico per mechanize
sé. http://wwwsearch.sourceforge.net/mechanize/ fornisce un frammento, che ho modificato (anche se non sono sicuro se funzionerà):
import logging
logger = logging.getLogger("mechanize")
# only log really bad events
logger.setLevel(logging.ERROR)
Quando si stampa qualcosa va allo schermo attraverso il file sys.stdout
. È possibile modificare questo file per qualsiasi altro file (ad esempio, un file di log che si apre), in modo che nulla viene stampato sullo schermo:
import sys
# save the old stdout so you can print later (do sys.stdout = OLD_STDOUT)
OLD_STDOUT = sys.stdout
sys.stdout = open("logfile.txt", 'w')
Naturalmente, se si sta parlando di una libreria che si sta chiamando , può essere stampato su sys.stderr
. Per fortuna, si può fare la stessa cosa per questo uno (continua dall'alto):
OLD_STDERR = sys.stderr
sys.stderr = open("errorLog.txt", 'w')
Ora, se, per qualche motivo, si vuole ignorare completamente l'output standard (stderr) e mai vedere di nuovo, si può definire le proprie classi di file-like che semplicemente scartare gli oggetti:
class Discarder(object):
def write(self, text):
pass # do nothing
# now discard everything coming out of stdout
sys.stdout = Discarder()
E, per aggiungere al frastuono delle possibili soluzioni, qui è una soluzione che funziona nelle shell di Unix:
# discards all input (change /dev/null to a file name to keep track of output)
python yourScript.py > /dev/null
Puoi fornire ulteriori informazioni?Di quale sceneggiatura stai parlando? Che tipo di dati sta stampando? Puoi mostrare un po 'di codice? Stai usando script esterni? – Ikke