清除Python控制台命令历史记录

26

我在Mac上使用Anaconda,想知道是否有方法可以清除Python命令历史记录。具体来说,在终端中调用python后,我希望能够清除之前输入的所有内容。


你是在问如何清除先前输入命令和输出的显示,还是如何清除 Python 回溯到按上箭头键时经过的命令历史记录? - user2357112
7个回答

50

假设你想要清除Python在按上下箭头键时经历的命令历史记录,那么这个历史记录是由GNU readline库或libedit管理的,具体取决于你的系统。Python readline模块是底层库的Python级接口(即使该库是libedit),在底层库支持它的系统上,你可以使用readline.clear_history来清除历史记录:

>>> import readline
>>> readline.clear_history()

我不知道您的 Mac 上的库是否支持它。


2
当你认为你的电脑被锁定了,但实际上并没有时,这个方法可以从Python历史记录中删除你的密码。 - peawormsworth
2
似乎不起作用了...我仍然可以在shell中获取我的命令历史记录。 - Brendan Metcalfe
我已经这样做了,现在我的历史记录不能再通过箭头键访问,但似乎它仍然存在——因为打开Python时仍会引发错误。我认为我的问题已经得到了这里的答案解决。 - lucidbrot
这对我有效(AWS Ubuntu EC2,Python 3.10.4,2022年6月版本)。 - openwonk
1
运行这个命令并不会清除$HOME目录下的.python_history文件。这个需要你手动使用rm $HOME/.python_history*来进行清除。 - Scotrraaj Gopal

5

如果你的系统没有使用readline,要删除所有Python命令历史记录,只需删除位于~/.python_history的历史文件即可。

你可以通过以下命令查看历史文件的完整路径:

python -c "import os; print(os.path.join(os.path.expanduser('~'), '.python_history'))"

在Windows上,历史文件位于%userprofile%\.python_history(例如,'C:\Users\<user>\.python_history')。


1

如果你正在使用Windows系统,而且无论你找了什么方法都无法清除终端存储的命令历史记录,那么以下方法可能会帮到你:

找到并删除:%userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

这将会删除你的整个终端历史记录。


0
import os

os.system('cls')

这将仅清除此交互式会话中的Python历史记录,而不是以前的历史记录。


0
如果您正在使用Linux,则:
Import os  
os.system('clear')  

如果你正在使用Windows操作系统:

Import os   
os.system('CLS')

0

转义序列?

print(chr(27) + "[2J")

或者

import os
os.system('cls' if os.name == 'nt' else 'clear')

3
这将只清除我在当前交互式会话中的Python历史记录,而不是以前的历史记录。假设您调用了python,执行了一些Python脚本,然后退出并再次调用了python,当您在键盘上按向上箭头时,您应该能够看到Python历史记录,这就是我想要清除的内容。 - John M.

0
你可以使用标准库subprocess模块中的subprocess.call()函数向终端发送重置命令,这将重新初始化终端,并类似于clear但也清除了滚动历史记录。
import subprocess
subprocess.call('reset')

1
但这只清除了我的bash命令历史记录,而不是我的Python历史记录? - John M.

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