Ok .. Vì vậy, có thể là một ví dụ là một cách tốt để giải thích vấn đề nàyđàn áp in như stdout python
Vì vậy, tôi có một cái gì đó như thế này:
if __name__=="__main__"
result = foobar()
sys.stdout.write(str(result))
sys.stdout.flush()
sys.exit(0)
Bây giờ kịch bản này đã được gọi từ một viên hồng ngọc script .. và về cơ bản nó phân tích kết quả ở đó. Nhưng foobar() có rất nhiều bản in .. và stdout flushes tất cả các bản in là tốt. Có cách nào (ngoài việc ghi nhật ký toán học) tôi có thể sửa đổi điều gì đó ở đây để tự động loại bỏ các bản in đó và chỉ xóa kết quả này không ?? Cảm ơn
tuyệt vời .. chỉ là những gì tôi cần :) – Fraz
Điều gì về việc sử dụng 'sys.stdout = open (os.devnull, 'w')' thay vì 'StringIO()'? – ovgolovin
@ovgolovin - chắc chắn hợp lý là tốt nếu không có kỳ vọng bạn có thể cần đầu ra. Với StringIO bạn có thể lấy nó nếu cần thiết trước khi bạn đặt lại giá trị gốc của 'stdout'. –