我正在尝试使用curses lib。
来创建交互式控制台与此类似:
import curses
if __name__ == '__main__':
stdscr = curses.initscr()
stdscr.nodelay(False)
curses.echo()
curses.nonl()
while True:
stdscr.addstr('#')
stdscr.refresh()
command = stdscr.getstr()
if not command:
continue
if command == b'xys':
stdscr.addstr('Execute xys block and print result')
elif command == b'qwe':
stdscr.addstr('Execute qwe block and print result')
# ...
但它返回了这个:
#xys
Execute xys block and print result#
#qwe
Execute qwe block and print result#
#
#
#
(在Execute qwe block and print result#
行之后我按了enter
键)
stdscr.getstr()
函数只等待输入的一半时间。另一半command = ''
没有任何输入。这就是您在每个输出结尾处看到双#
符号或#
符号的原因。
期待的结果应该是:
#xys
Execute xys block and print result
#qwe
Execute qwe block and print result
#
任何建议?
答案 0 :(得分:0)
我使用的是pyCharm终端(run
> edit configurations...
> emulate terminal in output console
已检查过)但显然是curses lib和pyCharm不兼容。
在普通终端中运行脚本时,它运行良好。
希望这会对某人有所帮助!