(Basé sur votre 2ème édition)
Si vous ne souhaitez pas désactiver toutes les sorties, vous pouvez essayer d'être spécifique à mechanize
lui-même. http://wwwsearch.sourceforge.net/mechanize/ fournit un extrait, que j'ai modifié (bien que je ne suis pas sûr si cela va fonctionner):
import logging
logger = logging.getLogger("mechanize")
# only log really bad events
logger.setLevel(logging.ERROR)
Lorsque vous imprimez quelque chose, il passe à l'écran dans le fichier sys.stdout
. Vous pouvez modifier ce fichier à tout autre fichier (par exemple, un fichier journal ouvert) de sorte que rien ne soit imprimé à l'écran:
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')
Bien sûr, si vous parlez d'une bibliothèque que vous appelez , il peut être l'impression à sys.stderr
. Heureusement, vous pouvez faire la même chose pour celui-ci (continue ci-dessus):
OLD_STDERR = sys.stderr
sys.stderr = open("errorLog.txt", 'w')
Maintenant, si, pour une raison quelconque, vous voulez ignorer complètement stdout (ou stderr) et ne jamais voir encore, vous pouvez définir vos propres classes comme fichier que simplement jeter les objets:
class Discarder(object):
def write(self, text):
pass # do nothing
# now discard everything coming out of stdout
sys.stdout = Discarder()
Et, d'ajouter le vacarme des solutions possibles, voici une solution qui fonctionne dans les shells Unix:
# discards all input (change /dev/null to a file name to keep track of output)
python yourScript.py > /dev/null
Pouvez-vous donner plus d'informations?De quel script parlez-vous? Quel type de données imprime-t-il? Pouvez-vous montrer du code? Utilisez-vous des scripts externes? – Ikke