我一直是 Notepad2 的重度用户,因为它速度快、功能丰富并且支持语法高亮显示。最近我一直在将它用于 Python。
我的问题:当我完成对某个 Python 源代码的编辑并尝试启动它时,屏幕在我看到输出弹出之前就消失了。除了使用 input() 或延时函数之外,有什么方法可以让我等待结果以便我可以阅读它?否则我将不得不使用 IDLE,因为输出会停止供您阅读。
(如果这个问题很愚蠢,我深表歉意,但我对 Python 和一般编程还很陌生。)
最佳答案
如果您不想使用 raw_input()
或 input()
,您可以将输出(stdout、stderr)记录到一个或多个文件中。
您可以使用 logging
模块,或者只是重定向 sys.stdout
和 sys.stderr
。
我建议结合使用 logging
和 traceback
如果您想使用他们的跟踪堆栈记录错误。
可能是这样的:
import logging, traceback
logging.basicConfig(filename=r'C:\Temp\log.txt', level=logging.DEBUG)
try:
#do some stuff
logging.debug('I did some stuff!')
except SomeException:
logging.error(traceback.format_exc())
这是一个重定向 stdout
和 stderr
的例子:
if __name__ == '__main__':
save_out = sys.stdout # save the original stdout so you can put it back later
out_file = open(r'C:\Temp\out.txt', 'w')
sys.stdout = out_file
save_err = sys.stderr
err_file = open(r'C:\Temp\err.txt', 'w')
sys.stderr = err_file
main() #call your main function
sys.stdout = save_out # set stdout back to it's original object
sys.stderr = save_err
out_file.close()
err_file.close()
我要指出,这不是最简单或最直接的方法。
关于python - 如何让 Python 等待以便您可以读取输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2356651/