2012-04-04 42 views
4

我正嘗試在Python 2.7.2中使用ANSI轉義序列爲CLI程序創建一個「下拉菜單」。我使用ANSI轉義序列將「選項」更改爲紅色,並在輸入行下方顯示它們,然後清除它們。ANSI轉義序列在Cygwin中失敗

我能夠運行運行Python 2.6.5的Ubuntu 10.04LTS系統上的代碼,但無法讓程序在運行Cygwin minTTY 1.0.3的Windows XP機器上運行。在Windows或Cygwin中是否存在sys.stdout.flush()問題?它是一個Python 2.6到2.7的問題?不知道從哪裏開始調試。

#!C:\Python27\python.exe 
#!/usr/bin/python 

import sys 

table = {1:'foo', 2:'bar', 3:'foo'} 
print '\n' 
for item in table.keys() : 
    sys.stdout.write('\033[1;31m %s) %s\033[0m\n' % (item,table[item])) 
    sys.stdout.flush() 
sys.stdout.write('%s' %((item+1)*'\033M')) 
sys.stdout.flush() 
answer = raw_input("Select foobar: ") 
sys.stdout.write('\033[J') 
sys.stdout.flush() 
print 'You have selected %s' % (table[answer]) 

的問題是,原始輸入文本不打印,直到您讓您在minTTY(再次,代碼工作正常,在Ubuntu),哪一種失敗提示文本的目的,選擇後。提前致謝 - 保羅

回答