2012-04-04 83 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),哪一种失败提示文本的目的,选择后。提前致谢 - 保罗

回答