我正在尝试显示调试控制台窗口(需要与脚本共享数据),但主控制台仍处于打开状态。我知道如何做到这一点的唯一方法是执行第二个脚本,并与文件共享数据..
我希望第二个窗口是一个实际的控制台。
我在 Windows 7 上,我的脚本不需要非常兼容。
如果您在 Windows 上,您可以使用 win32console 模块为您的子线程打开第二个控制台(因为您希望它们共享相同的数据)输出。如果您在 Windows 上,这是最简单和最简单的方法。
这是一个示例代码:
import win32console
import threading
from time import sleep
def child_thread():
win32console.FreeConsole() #Frees child_thread from using main console
win32console.AllocConsole() #Creates new console and all input and output of the child_thread goes to this new console
while True:
print("This is in child_thread console and the count is:",count)
#prints in new console dedicated to this thread
if __name__ == "__main__":
count = 0
threading.Thread(target=child_thread, args=[]).start()
while True:
count+=1
print("Hello from the main console - this is count:", count)
#prints in main console
sleep(1)
#and whatever else you want to do in ur main process
还有一种使用队列模块中的队列的更好方法,因为它可以让您更好地控制竞争条件。
您可以考虑在您的应用程序上使用 GUI 并弹出到将输入和输出(文本框)设计为控制台的窗口。从技术上讲,两个窗口将作为一个应用程序运行,因此可以访问相同的命名空间。要在 GUI 中包装 python,请查看 python Wx和Python TkInter。祝你好运。
PS而且它会非常兼容:)