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  os

root 
=   ' /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  os

root 
=   ' /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

 

经过为完全测试,节本可用。

 

由于本人水平所限,难免疏漏。如果发限,敬请指正!谢谢! 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处!


















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/archive/2011/04/03/2004722.html ,如需转载请自行联系原作者
相关文章
|
Python
【10月更文挑战第10天】「Mac上学Python 19」小学奥数篇5 - 圆和矩形的面积计算
本篇将通过 Python 和 Cangjie 双语解决简单的几何问题:计算圆的面积和矩形的面积。通过这道题,学生将掌握如何使用公式解决几何问题,并学会用编程实现数学公式。
524 60
|
Python
【10月更文挑战第10天】「Mac上学Python 20」小学奥数篇6 - 一元一次方程求解
本篇将通过 Python 和 Cangjie 双语讲解如何求解一元一次方程。通过这道题,学生将掌握如何用编程实现方程求解,并体验基本的代数计算。
411 1
|
存储 网络安全 数据安全/隐私保护
|
Python
【10月更文挑战第7天】「Mac上学Python 14」基础篇8 - 运算符详解
本篇将详细介绍Python中的运算符,包括数学运算、关系运算、逻辑运算、赋值运算和成员运算等内容。同时会说明运算符的优先级和运算顺序,帮助用户理解和掌握Python中的运算符使用规则。
181 3
【10月更文挑战第7天】「Mac上学Python 14」基础篇8 - 运算符详解
|
Python
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
本篇将详细介绍Python中的常见数据类型转换方法以及 `NoneType` 的概念。包括如何在整数、浮点数、字符串等不同数据类型之间进行转换,并展示如何使用 `None` 进行初始赋值和处理特殊情况。通过本篇的学习,用户将深入理解如何处理不同类型的数据,并能够在代码中灵活使用 `None` 处理未赋值状态。
193 2
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
|
Python
【10月更文挑战第7天】「Mac上学Python 15」小学奥数篇1 - 如何平分6个苹果和4个橘子
本篇将通过 Python 和 Cangjie 双语讲解一个简单的数学题:如何平分 N 个苹果和 M 个橘子。这道题旨在锻炼初学者的逻辑思维,并学会使用编程解决实际问题。
291 1
【10月更文挑战第7天】「Mac上学Python 15」小学奥数篇1 - 如何平分6个苹果和4个橘子
|
Python
【10月更文挑战第6天】「Mac上学Python 12」基础篇6 - 输入输出与格式化详解
本篇将详细介绍Python中的输入和输出函数,包括 `print()` 和 `input()` 函数的使用,涵盖格式化输出、类型转换及常见的字符串格式化方法。通过学习本篇,用户将掌握如何使用Python进行输入输出操作,并能灵活运用格式化输出处理数据。
357 1
【10月更文挑战第6天】「Mac上学Python 12」基础篇6 - 输入输出与格式化详解
|
Java 索引 Python
【10月更文挑战第19天】「Mac上学Python 30」基础篇11 - 高级循环技巧与应用
本篇将介绍更深入的循环应用与优化方法,重点放在高级技巧和场景实践。我们将讲解enumerate()与zip()的妙用、迭代器与生成器、并发循环以及性能优化技巧。这些内容将帮助您编写更高效、结构更合理的代码。
155 5
|
数据安全/隐私保护 Python
【10月更文挑战第17天】「Mac上学Python 28」基础篇9 - 条件语句与逻辑判断
在Python中,条件语句和逻辑判断是控制程序执行流程的关键工具,帮助程序在不同条件下做出不同决策。通过本篇的学习,您将掌握单选、双分支、多选结构、单行条件表达式、条件嵌套、条件判断的类型和逻辑运算符的用法,从而更灵活地控制程序执行流程。
247 5
|
Python
【10月更文挑战第18天】「Mac上学Python 29」基础篇10 - 循环结构与迭代控制
在Python中,循环结构是控制程序执行的重要工具。通过学习本篇内容,您将掌握如何使用for循环和while循环来高效地处理重复任务,并了解break、continue和else的使用方式。同时,我们还会探索嵌套循环和典型应用场景中的实际应用。
191 2

推荐镜像

更多