파이썬 2.7.2에서 ANSI 이스케이프 시퀀스를 사용하여 CLI 프로그램의 '드롭 다운 메뉴'를 만들려고합니다. ANSI 이스케이프 시퀀스를 사용하여 '옵션'을 빨간색으로 변경하고 입력 행 아래에 표시 한 다음 나중에 지 웁니다.Cygwin에서 ANSI 이스케이프 시퀀스가 실패합니다.
파이썬 2.6.5를 실행하는 Ubuntu 10.04LTS를 실행하는 시스템에서 코드를 실행할 수 있지만 Cygwin minTTY 1.0.3을 실행하는 Windows XP 컴퓨터에서 프로그램을 실행할 수 없습니다. Windows 또는 Cygwin에서 sys.stdout.flush()에 문제가 있습니까? 파이썬 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 (다시, 코드는 우분투에서 잘 작동)에서 선택을 할 때까지 인쇄하지 않습니다. 미리 감사드립니다 - Paul