python - 如何让 Python 等待以便您可以读取输出?

标签 python ide

我一直是 Notepad2 的重度用户,因为它速度快、功能丰富并且支持语法高亮显示。最近我一直在将它用于 Python。

我的问题:当我完成对某个 Python 源代码的编辑并尝试启动它时,屏幕在我看到输出弹出之前就消失了。除了使用 input() 或延时函数之外,有什么方法可以让我等待结果以便我可以阅读它?否则我将不得不使用 IDLE,因为输出会停止供您阅读。

(如果这个问题很愚蠢,我深表歉意,但我对 Python 和一般编程还很陌生。)

最佳答案

如果您不想使用 raw_input()input(),您可以将输出(stdout、stderr)记录到一个或多个文件中。

您可以使用 logging模块,或者只是重定向 sys.stdoutsys.stderr

我建议结合使用 loggingtraceback如果您想使用他们的跟踪堆栈记录错误。

可能是这样的:

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())

这是一个重定向 stdoutstderr 的例子:

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/

相关文章:

python - Tkinter 颜色名称到颜色对象

ide - 在 Windows 机器上使用 IDE,但在 Linux 机器上测试/运行应用程序?

c - windows上的代码文件如何与WSL/linux同步?

php - Netbeans PHP 函数参数提示

python - 如何在Python中为一个键存储多个值

python - 数据集中两点之间的最大距离和识别点

Python CSV : Grab all values in row with conditions for time values

python - 如何按索引替换整个 Pandas DataFrame 列?

python - Ninja-IDE virtualenv 未导入

c++ - Dev C++编译的exe信息