在Windows的交互提示符中打印Python历史记录

5
我正在使用Windows 10上的默认Python解释器,并且可以使用箭头键逐个浏览命令。但是是否有像bash shell中的“history”命令一样的选项,可以显示您迄今输入的所有命令? 这几乎是与如何查看交互式Python中的所有命令历史记录? 相同,只是用于Windows 10而不是macOS/*nix。那里的解决方案要么推荐iPython(我很少使用),要么使用readline,在Windows上不可用。 我安装了pyreadline包,但在这种情况下似乎它不能完全取代它。
C:\Users\yoder>python
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

1
如果您正在Windows命令提示符下运行Python,则链接主题中的接受答案有效。 - Vova
1
如果你安装了 pyreadline(即import readline可用),你将不会使用控制台的 cooked read,在控制台中以 F7 方式访问的普通历史记录存储方式。启用 readline 后的历史记录存储在 Python 的历史文件中。但请注意,pyreadline 维护较差,不能正确支持(即存在错误)控制台实现粘贴非键盘 Unicode 字符的方式。 - Eryk Sun
@ErykSun 我认为那就是一个答案。你想写下它吗? - Josiah Yoder
似乎pyreadlinereadline都只会在REPL退出时(至少在Windows上)将内容写入历史文件。因此,如果你想要一个连续的“最后命令已写入”功能,需要编写自己的函数,并将其添加到~/.pyrc中,使用PYTHONSTARTUP文件。 - not2qubit
@not2qubit 这感觉像是一个新问题的开始。随意提出并回答它,并在这里链接。 - Josiah Yoder
显示剩余5条评论
1个回答

4

总结一下ErykSun和Vova在评论中提到的内容:

如果你在cmd提示符中运行Python,并且没有安装pyreadline,则可以按F7键调出cmd本身的历史记录,Python将使用这个历史记录。

如果你已经安装了pyreadline,那么你可以import readline并使用这个答案中描述的技术。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接