给定下一个控制台:
import os
import tty
import termios
from sys import stdin
class Console(object):
def __enter__(self):
self.old_settings = termios.tcgetattr(stdin)
self.buffer = []
return self
def __exit__(self, type, value, traceback):
termios.tcsetattr(stdin, termios.TCSADRAIN, self.old_settings)
...
def dimensions(self):
dim = os.popen('stty size', 'r').read().split()
return int(dim[1]), int(dim[0])
def write(self, inp):
if isinstance(inp, basestring):
inp = inp.splitlines(False)
if len(inp) == 0:
self.buffer.append("")
else:
self.buffer.extend(inp)
def printBuffer(self):
self.clear()
print "\n".join(self.buffer)
self.buffer = []
现在我必须在该缓冲区中获取一些字母,但字母的顺序不正确,有些地方将是空的。例如:我想在屏幕的第 12 列和第 14 行有一个“w”,然后在其他地方有一些其他“w”,在那边有一个“b”等等......(控制台很大足以处理这个)。我怎么能实现这个?我真的不知道如何解决这个问题。
另一个困扰我的问题是如何调用这个exit-constructor,应该给出什么样的参数?
真诚的,一个真正缺乏经验的程序员。