我编写了一个在命令提示符下运行良好的脚本,但如果我双击桌面上的 script.py 图标,它只会显示最后一行。
脚本中的函数运行完美,但一旦找到匹配项,它就应该在屏幕上显示输出。最后,我有一个 os.pause 语句,它在脚本完成时显示,但屏幕上没有其他显示。
我正在使用 pythonw.exe 执行它。我还应该检查什么?
谢谢你。
pythonw 抑制执行 python 脚本时创建的控制台窗口。它适用于打开自己的 GUI 的程序。如果没有 pythonw,python gui 应用程序将有它的常规窗口和一个额外的控制台浮动。我不确定 pythonw 对你的 stdout 做了什么,但 os.isatty() 返回 False,我认为 stdout/err 只是被遗忘了。如果您运行类似 的 DOS 命令os.system("pause")
,Windows 只会为该命令创建一个新的控制台窗口。这就是你在屏幕上看到的。
如果您想查看脚本输出,您应该使用 python.exe 运行并按照@GaryWalker 的建议在脚本末尾添加输入提示,或者使用 tcl/tk、Qt 或 wxPython 等 gui 工具包。
我像以前一样使用过脚本,对我来说似乎没问题
print("Hello world")
input("Press return to exit")