9
Cách tốt nhất để thực thi một loạt mã python, như exec mycode
và nắm bắt mọi thứ mà nó in ra thành chuỗi không?Thực hiện một khối mã python với exec, bắt tất cả đầu ra của nó?
Cách tốt nhất để thực thi một loạt mã python, như exec mycode
và nắm bắt mọi thứ mà nó in ra thành chuỗi không?Thực hiện một khối mã python với exec, bắt tất cả đầu ra của nó?
Hãy thử thay thế sys.stdout mặc định, như trong đoạn này:
import sys
from StringIO import StringIO
buffer = StringIO()
sys.stdout = buffer
exec "print 'Hello, World!'"
#remember to restore the original stdout!
sys.stdout = sys.__stdout__
print buffer.getvalue()
Hãy nhìn vào câu trả lời này. http://stackoverflow.com/questions/3906232/python-get-the-print-output-in-an-exec-statement/3906390#3906390 Nó thay thế stdout cho thời gian thực hiện. –
@Reiner: Mặc dù câu hỏi này được diễn đạt tốt hơn, nhưng về cơ bản nó là một sự lừa đảo của câu hỏi đó (và câu hỏi đó có một câu trả lời tuyệt vời!). Điều này có nên được đóng lại và chỉ ra điều đó không? – Gerrat
ah tôi đã nghĩ đến việc làm một cái gì đó như thế rồi quyết định nó sẽ không hoạt động vì một lý do nào đó, nhưng tôi đoán là không! – Claudiu