如何在Mac上删除python脚本中的bash历史记录?

时间:2014-01-14 09:22:22

标签: python macos bash history delete-file

我想在Macbook Pro上使用python脚本删除bash历史记录。

我知道有两种方法可以使用bash shell删除bash历史记录

1.rm~ / .bash_history

2.history -c

但是这些命令在带有子进程的python脚本中不起作用:

1.rm~ / .bash_history

import subprocess
subprocess.call([‘rm’, ‘~/.bash_history'])

错误:

rm:〜/ .bash_history:没有这样的文件或目录

2.history -c

import subprocess
subprocess.call(['history', '-c'])

错误:

  

文件“test.py”,第8行,in      subprocess.call(['history',' - c'])   文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,行> 524,正在通话中      返回Popen(* popenargs,** kwargs).wait()    文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,行> 711,在 init 中      errread,errwrite)    文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,行> 1308,在_execute_child中      提出child_exception

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

这里有两个问题:

首先,python不理解~,你需要扩展它:

subprocess.call(['rm', os.path.expanduser('~/.bash_history')])

其次,history是一个内置的shell。使用shell来调用它:

subprocess.call(['bash', '-c', 'history -c'])