2011-08-19 79 views
0

短缺問題
是否有可能/實用的編寫和更新多行(包含\n)在Windows終端上串?Python的多線路終端更新

背景
我已經調查curses,但它只能是Unix的。我看到了一些其他的Window端口,但是Windows XP對於他們來說是一個實驗操作系統,這有點令人不安。我希望將它用作診斷功能的一部分,以在主要終端應用程序上顯示鏈接狀態,消息速率等(請注意,某些變體確實有wxPython GUI輸入)。這就是說,使用Cygwin是不理想的,並希望僅使用sys模塊找到解決方法。

我已經試過如下:(注意,我希望他們失敗了,但希望我是錯的)
嘗試1:修改字符串,但它是所有在1號線

sys.stdout.write("\r") 
sys.stdout.write("This is a multi-line screen print test") 
sys.stdout.write("Line 1") 
sys.stdout.write("Line 2") 
sys.stdout.flush() 

嘗試2 :不更新但打印所有行

sys.stdout.write("\r") 
sys.stdout.write("This is a multi-line screen print test\n") 
sys.stdout.write("Line 1 \n") 
sys.stdout.write("Line 2\n") 
sys.stdout.flush() 

回答

1

我能找到詛咒(已在過去10年中已更新)最接近的事是Windows Console Driver。而不是使用這種方法,我去了這是一個不太優雅的方法。

import os 
import time 

while(1): 
    time.sleep(.05) 
    os.system('cls') 
    print "This is a multi-line screen print test" 
    print "Line 1" 
    print "Line 2" 
0

您可能必須使用Windows Console API。例如,SetConsoleCursorPosition。其他人似乎沒有實現的Python模塊以支持該API:12