<p>我想你需要用户按下一个键。</p>
<p>您可以使用以下方法(无需按enter键)实现它:</p>
<pre class="lang-py prettyprint-override"><code>import termios, os, sys
def getkey():
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~termios.ICANON & ~termios.ECHO
new[6][termios.VMIN] = 1
new[6][termios.VTIME] = 0
termios.tcsetattr(fd, termios.TCSANOW, new)
c = None
try:
c = os.read(fd, 1)
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, old)
return c
</code></pre>
<p>然后,如果这个键是tab键(例如,这是您需要实现的),那么向用户显示所有的可能性。如果这是其他的键,请打印在标准输出上。</p>
<p>哦,当然,只要用户点击enter,就需要在一段时间内循环getkey()。你还可以得到一个方法,比如raw_input,当你点击一个标签时,它将得到整个单词的符号,或者显示所有的可能性。</p>
<p>至少你可以从这个开始。如果你有其他的问题,就写下来。</p>
<p>编辑1:</p>
<p>get-word方法可以如下所示:</p>
<pre class="lang-py prettyprint-override"><code>def get_word():
s = ""
while True:
a = getkey()
if a == "\n":
break
elif a == "\t":
print "all possibilities"
else:
s += a
return s
word = get_word()
print word
</code></pre>
<p>我现在遇到的问题是如何显示一个符号,您刚刚输入时没有任何回车和空格,这是<code>print a</code>和<code>print a,</code>所做的。</p>