如果我从命令行启动一个新的 Python 交互式会话,则会出现一些控制台功能,例如使用箭头键访问上一个命令等。
但是,如果相反,我使用code.interact()从较大的脚本内部启动交互式会话,则无法正确处理转义序列 - 例如,按 ? 键打印^[[A而不是显示上一个命令。如何启用此功能?
您可以使用readline模块来使箭头键工作
import code
import readline
import rlcompleter
vars = globals()
vars.update(locals())
readline.set_completer(rlcompleter.Completer(vars).complete)
readline.parse_and_bind("tab: complete")
code.InteractiveConsole(vars).interact()
Run Code Online (Sandbox Code Playgroud)