(Dựa trên chỉnh sửa thứ 2 của bạn)
Nếu bạn không muốn vô hiệu hóa tất cả các đầu ra, bạn có thể cố gắng được cụ thể cho mechanize
riêng của mình. http://wwwsearch.sourceforge.net/mechanize/ cung cấp một đoạn, mà tôi đã sửa đổi (mặc dù tôi không chắc chắn nếu nó sẽ làm việc):
import logging
logger = logging.getLogger("mechanize")
# only log really bad events
logger.setLevel(logging.ERROR)
Khi bạn in một cái gì đó nó đi vào màn hình thông qua các tập tin sys.stdout
. Bạn có thể thay đổi tập tin này cho bất kỳ tập tin khác (ví dụ, một file log bạn mở) để không có gì được in ra màn hình:
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')
Tất nhiên, nếu bạn đang nói về một số thư viện mà bạn đang gọi điện thoại , nó có thể được in đến sys.stderr
. May mắn thay, bạn có thể làm điều tương tự với bộ phim này (liên tục từ trên cao):
OLD_STDERR = sys.stderr
sys.stderr = open("errorLog.txt", 'w')
Bây giờ nếu vì một lý do, bạn muốn hoàn toàn bỏ qua stdout (hoặc stderr) và không bao giờ nhìn thấy nó một lần nữa, bạn có thể xác định tập tin giống như các lớp học của riêng bạn mà chỉ đơn giản là loại bỏ các đối tượng:
class Discarder(object):
def write(self, text):
pass # do nothing
# now discard everything coming out of stdout
sys.stdout = Discarder()
Và, để thêm vào din các giải pháp có thể, đây là một giải pháp mà làm việc trong vỏ Unix:
# discards all input (change /dev/null to a file name to keep track of output)
python yourScript.py > /dev/null
Bạn có thể cung cấp thêm một số thông tin không?Bạn đang nói về kịch bản gì? Loại dữ liệu nào được in? Bạn có thể hiển thị một số mã không? Bạn đang sử dụng tập lệnh bên ngoài? – Ikke