^H^? 在蟒蛇

Jek*_*yll 5 python backspace

一些终端将发送^?退格,其他一些终端将发送^H. 大多数终端都可以配置为改变它们的行为。我不想处理所有可能的组合,但我想同时接受^?^H作为来自 python 的退格。

这样做

os.system("stty erase '^?'")
Run Code Online (Sandbox Code Playgroud)

我会接受第一个选项并与

os.system("stty erase '^H'")
Run Code Online (Sandbox Code Playgroud)

我会接受第二个,但第一个将不再可用。我想用

raw_input("userinput>>")
Run Code Online (Sandbox Code Playgroud)

抓取输入。

我能够弄清楚的唯一方法是实现我自己的外壳,它不适用于“基于原始输入”但适用于“基于字符的输入”。

有什么更好(更快)的想法吗?

Sve*_*ach 5

内置函数raw_input()(或input()在 Python 3 中)将readline在导入后自动使用该库。这为您提供了一个漂亮且功能齐全的行编辑器,并且它可能是您在可用平台上的最佳选择,只要您不介意 Readline 拥有传染性许可证 (GPL)。