- 論壇徽章:
- 0
|
本帖最后由 luffy.deng 于 2010-06-04 15:34 編輯
問題來自這里http://www.72891.cn/thread-1713308-1-1.html
win32下一個(gè)進(jìn)程只能跟一個(gè)控制臺關(guān)聯(lián),所以在當(dāng)前進(jìn)程是無法開多個(gè)控制臺窗口的,但是有時(shí)候可能又確實(shí)需要這樣做那么變通的辦法就是開幾個(gè)輔助的子進(jìn)程,子進(jìn)程里分配新的控制臺,并從管道讀取父進(jìn)程發(fā)來的內(nèi)容顯示在自己關(guān)聯(lián)的控制臺上,簡單的原理就是這樣,看一下示例代碼。- 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)
復(fù)制代碼 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()
復(fù)制代碼 附上一張效果圖 |
-
m.JPG
(70.36 KB, 下載次數(shù): 38)
下載附件
2010-06-04 15:05 上傳
|