python Gooey print打印只显示最终结果没有过程

python Gooey用pyinstaller 生成可执行exe后所有print语句程序执行完后才会显示,中间过程不显示,IDLE调试和直接调用py文件print会逐条打印。

这个问题可能是由于Gooey库的某些特性导致的,但可以通过以下方法来解决。

一种解决方案是将输出重定向到文件中,然后在程序执行结束后将文件内容打印出来。可以使用以下代码将输出重定向到文件中:

import sys

# 重定向标准输出到文件
sys.stdout = open('output.txt', 'w')

然后在程序结束时,将文件内容读取并打印出来:

# 读取文件内容并打印
with open('output.txt', 'r') as f:
    print(f.read())

这种方法会将所有输出都写入文件中,而不是在程序执行期间直接打印。

另一种解决方案是使用Python的logging模块来记录程序输出。logging模块可以配置不同的日志级别,并且可以将输出记录到文件中或打印到控制台上。

以下是一个简单的示例:

import logging

# 配置日志记录
logging.basicConfig(level=logging.DEBUG, filename='output.log', filemode='w')

# 在程序中使用logging记录输出
logging.debug('Debug message')
logging.info('Info message')
logging.warning('Warning message')
logging.error('Error message')
logging.critical('Critical message')

# 打印日志文件中的内容
with open('output.log', 'r') as f:
    print(f.read())

这种方法可以更加灵活地控制输出的级别和输出的方式,并且可以在程序执行期间即时打印输出。