用python实现一个清理工具的代码

好久没有写博客了, 前几天经一个朋友推荐说,写博客可以用markdown,今天便来试一试,由于自己用的还不是太熟悉,可能也不知写出来效果怎么样,今天写的这个是实现一个vs2015工程的清理工具,由于是刚学,写出来的代码也只是简单的实现了这个功能,好了,话不多说,直接上源代码,我这个源代码里面我自己写的注释比较多,还请见谅 (先修改了一部分,有机会再精修一下)


 清理文件的工具的代码: 



 1. 先介绍一下概念:目录;如果双击它,还可以打开,就是说里面还有内容,那么它就是目录(一般一个文件夹它就是一个目录)
 2. 文件:如果双击它,打不开, 或者说直接运行这个文件, 那么它就是文件     


                                                                                              import os
#(os是一个模块,系统提供的,它里面包含了很多类和方法,可以打开文件/目录,删除文件/目录等,有点类似于一些dos命令                                   
d = ['.exe', '.zip', '.tlog', '.lastbuildstate', '.idb', '.pdb', '.pch', '.res', '.ilk', '.sdf', '.ipch']
#可以先暂时不用管d这个列表, 下面会用到 
def fun(path): 
#这个path是用来接收路径的                                                                        
  l_del = []  
#这个列表也可以暂时先不用管,是用来存储删除掉的文件名的,注意这里的文件, 是与目录相对的文件,在上文已经解释过                              
    try:                                                                                                 
#遍历当前目录,得到目录下的所有文件和文件夹(这里所说的文件夹其实是上面所说的 目录!)                                                                                                         
     file = os.listdir(path)  
#这里的file是我们自己所起的名字                                                   
#遍历文件列表                                                                                                                                                                                                     
        for f in file:                                                                                                                                                                              
#如果是目录,就递归调用进入下一层,看其里面是否有目录,如果有,就继续调用(D:\vs2015\pythonday1,它里面还有文件夹.dea,它就是一个目录                                                                                                                                                                                                                
       if os.path.isdir(os.path.join(path, f)):                                                     #os.path.join(path, f)这句话的作用是拼接路径,f指的是.dea这个目录,path指的是D:\vs2015\pythonday1这个目录      
#将两者拼接好以后,就变成了D:\vs2015\pythonday1\.idea                                           
#os.path.isdir():判断括号里面是否为一个目录,如果是,就返回true,这里..idea就是一个目录,返回true,执行if中语句              
#如果括号里面拼接的结果为D:\vs2015\pythonday1\作业.py,那么就是一个文件,返回false                             
  #上面if旁边的语句如果判断为目录,就执行下面这一句,继续拼接路径                                                      
                p = os.path.join(path, f)                                                                
#递归#调用本函数,判断目录里面的文件以及目录(就是说一个目录里面它也有可能有目录和文件, 调用本函数依次遍历并判断)                            
                fun(p)                                                                                   
            else:                                                                                        #如果是个文件,将文件名和文件后缀名提取, 并放到一个列表里面                                                         
                name = os.path.splitext(f)   
#此时name是一个列表,比如,这里将"misc.xml"拆成了'misc'和'.xml'两个字符串,记住,这里是在for f in file:这个循环下的,所以name这个列表里面只有两个元素,这两个元素为字符串,一个为文件名,一个为文件后缀名,使用得到的文件后缀与自定义的垃圾文件后缀(就是d哪个列表里面的元素)比较                                                                             
                for i in d:                                                                              #这里的i是d这个列表里的后缀(字符串)(依次遍历),比较成功的就删除,就是说如果                                                                                                                           
                        if name[1] == i:
#这句话的意思是说,如果name列表里面的后缀这个字符串和d这个列表里面的字符串(它们也都是后缀名)             
                            l_del.append(f)                                                              #它们如果相等的话,把要删除的文件保存到列表中                                                                                                                                                                                                      
                            os.remove(os.path.join(path,f))                                             #直接删除文件                                                                    
                            break                                                                        
    except Exception as e:                                                                               
        print('-------------')                                                                           
        print(path)                                                                                      
        print(e)                                                                                         
        print('-------------')                                                                      # 打印需要删除的文件名及路径                                                                                  
        print('-------------')                                                                           
        print(path)                                                                                      
        print(l_del)                                                                                     
        print('-------------') 
#调用,r表示自然串,串内的转义字符无效                                                                                fun(r'D:\\vs2015\pythonday1')                                                                           




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值