- 论坛徽章:
- 0
|
本帖最后由 luffy.deng 于 2010-06-04 15:34 编辑
问题来自这里http://bbs.chinaunix.net/thread-1713308-1-1.html
win32下一个进程只能跟一个控制台关联,所以在当前进程是无法开多个控制台窗口的,但是有时候可能又确实需要这样做那么变通的办法就是开几个辅助的子进程,子进程里分配新的控制台,并从管道读取父进程发来的内容显示在自己关联的控制台上,简单的原理就是这样,看一下示例代码。- import subprocess
- import time
- con1 = subprocess.Popen('pythonw console.py',stdin=subprocess.PIPE)
- con2 = subprocess.Popen('pythonw console.py',stdin=subprocess.PIPE)
- con1.stdin.write('aaa\n')
- con2.stdin.write('bbb\n')
- time.sleep(10)
复制代码 console.py也非常简单- import win32console
- import sys
- win32console.AllocConsole()
- sys.stdout = open("CONOUT$", "w", 0)
- while True:
- s= sys.stdin.readline()
- if not s:
- time.sleep(1)
- sys.stdout.write(s)
- sys.stdout.flush()
复制代码 附上一张效果图 |
-
m.JPG
(70.36 KB, 下载次数: 38)
|