Mac下使用Python删除Safari历史
时间:2011-04-03 来源:Coder Lee
Mac下使用Python删除Safari历史
Windows下有工具可以方便快捷的清除掉浏览器历史。
既然正在学Python,那为什么不用这个语言写一个小工具呢?
MacOS的内核是Free BSD,Unix的一个分枝。Unix没有象Windows系统一样的分区。
相反的,Unix把所有的文件都组织在一个目录之下。这个目录就是root,标记为/。
Unix的文件组织的非常的清晰,具体的细节大家可以查看这里。
之后我们可以查到Safari存放历史记录的默认目录为
/Users/lichallenger/Library/Caches/Metadata/Safari/History/。
从finder转到以上目录可以看到历史文件的列表。
了解了以上知识后,我们就可以进入Python编程这一步了。
代码:
import osroot = '/Users/lichallenger/Library/Caches/Metadata/Safari/History/'
top = root
for root,dirs,files in os.walk(top,topdown=False):
for name in files:
print 'file name is: %s ' % name
for name in dirs:
print 'dir name is: %s ' % name
print 'end============'
在Terminal中运行这段代码得到:
如果你稍微注意的话,你会发现Finder中显示的历史记录和执行Python代码后得到的结果是不一样的。
代码搜索出来的前两个文件在Finder中是没有的。不管如何,这两个文件显然不是我们要处理的历史记录。
修改代码,并添加删除功能。如下:
import osroot = '/Users/lichallenger/Library/Caches/Metadata/Safari/History/'
top = root
for root,dirs,files in os.walk(top,topdown=False):
for name in files:
his_file = root + name
print 'file name is: %s ' % his_file
try:
if his_file.find('http') != -1:
os.remove(his_file)
except ValueError:
continue
经过为完全测试,节本可用。
由于本人水平所限,难免疏漏。如果发限,敬请指正!谢谢!