我正嘗試在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),哪一種失敗提示文本的目的,選擇後。提前致謝 - 保羅