(Basierend auf dem zweiten edit)
Wenn Sie alle Ausgaben nicht deaktivieren möchten, können Sie versuchen, mechanize
sich um genau zu sein. http://wwwsearch.sourceforge.net/mechanize/ ein Schnipsel, die ich geändert habe (obwohl ich nicht sicher bin, ob es funktionieren wird):
import logging
logger = logging.getLogger("mechanize")
# only log really bad events
logger.setLevel(logging.ERROR)
Wenn Sie etwas ausdrucken auf dem Bildschirm durch die sys.stdout
Datei geht. Sie können diese Datei in eine andere Datei ändern (zB eine Log-Datei, die Sie öffnen), so dass nichts auf dem Bildschirm ausgegeben wird:
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')
Natürlich, wenn Sie über einige Bibliothek reden, die Sie anrufen Es kann unter sys.stderr
gedruckt werden. Zum Glück kann man genau die gleiche Sache für diese tun (Fortsetzung von oben):
OLD_STDERR = sys.stderr
sys.stderr = open("errorLog.txt", 'w')
Nun, wenn aus irgendeinem Grund, möchten Sie ganz stdout ignorieren (oder stderr) und es nie wieder sehen, können Sie Ihre eigene Datei-wie Klassen definieren, die einfach die Objekte verwerfen:
class Discarder(object):
def write(self, text):
pass # do nothing
# now discard everything coming out of stdout
sys.stdout = Discarder()
Und, um den Lärm der möglichen Lösungen hinzuzufügen, hier ist eine Lösung, die in Unix-Shells funktioniert:
# discards all input (change /dev/null to a file name to keep track of output)
python yourScript.py > /dev/null
Können Sie weitere Informationen geben?Von welchem Skript sprichst du? Welche Art von Daten wird gedruckt? Kannst du etwas Code zeigen? Verwenden Sie externe Skripts? – Ikke