Python 命令行:如何编辑上一行的错误?

16 投票
5 回答
12209 浏览
提问于 2025-04-16 22:58

在命令行中使用Python时,如果我发现之前输入的嵌套语句有错误,有没有办法在已经输入的情况下删除或编辑那一行呢?

比如:

>>> file = open("file1", "w")
>>> for line in file:
...     parts = line.split('|')   <-- example, I meant to type '\' instead
...     print parts[0:1]
...     print ";"
...     print parts[1:]

所以,我不想为了修正一个字符而重新输入整个内容,有没有办法回去修改一下呢?我知道我可以在vim等编辑器中写代码,这样可以保存一个可以随意修改的副本,但我希望能在命令行中找到一个方便的小技巧。

-- 谢谢!

5 个回答

2

也许可以。Python教程里说:

检查命令行编辑是否支持的最快方法就是在你第一次看到Python提示符时,按下Control-P。如果有哔声,那说明支持命令行编辑;你可以查看附录 交互输入中的编辑和历史替换,了解一些快捷键。如果没有任何反应,或者显示^P,那就说明命令行编辑不可用;这时你只能使用退格键来删除当前行的字符。

2

我在写Python这么多年里,没听说过有什么特别的办法。文本编辑器就是用来这个的 =)

如果你是Emacs的用户,可以设置你的环境,把窗口分成代码区域和Python命令行区域,然后执行整个代码区域,这样就能看到变化了。

7

在原来的Python解释器中,你是无法做到这样的事情的。不过,如果你使用最新版本的 IPython,它提供了一个 轻量级的图形界面(看起来像一个简单的命令行,但实际上是图形界面),这个界面支持多行编辑、语法高亮以及其他很多功能。要使用 IPython 的图形界面,你可以通过 ipython qtconsole 命令来运行它。

撰写回答