用Python找出拖慢你电脑速度的罪魁祸首

一、问题

有一天,你快乐的用着电脑看着少儿不宜的东西,可是电脑右下角的360的气泡突然变红,电脑卡的不能动了,你赶紧查找原因,系统提示你C盘太满了,没有空间了,你着急的想要把一些不用东西请出C盘,可是人工一个一个的去找,实在是在费劲了,你当然可以使用360的大文件查找,可是谁叫你是有逼格的程序员呢!

于是,你撩起袖子自己干。

二、开始奔跑吧

老规矩,先来问题分解,我们想要找出电脑里的这些大文件,那么首先是要能遍历文件夹,这个就可以选择内置库,os.walk可以达到目的,我们还要能知道每个文件的大小,这个可以选择os.path.getsize,都是os的内置方法,python强大的地方就在这里,总有一款好用方法在等着你,那怕内置的不能满足你,你还有大量的第三方库可以选择。除了这两个要求,我们还希望能够保存到csv文件中,总不能让我在屏幕的一闪而过中去记住哪些文件有多大吧,所以保存到csv中很重要,我们可以打开csv文件,慢慢查找,一个一个按归照路径去删除那些大而无用的文件。而保存csv文件很简单,python可以直接写文件。当然还有个csv库可以更优雅操作csv,不过我们这里暂时用不上。

下面就是你们期待的代码:

import os
from os.path import join, getsize

def getdirsize(dir):
    for root, dirs, files in os.walk(dir):
        try:
            for name in files:
                filename = join(root, name)
                size = getsize(filename )
                print('There are {:.3f} Mbytes in {}'.format(size/1024/1024,filename))
                with open(r'size.csv','a+') as f:
                    f.write('{:.3f},{}\n'.format(size/1024/1024,filename))
        except WindowsError:
            pass

if __name__ == '__main__':
    getdirsize(r'c:\\')

首先,导入我们需要的包, 注意这里获取的大小不是我们常用的多少M,所以要进行转换,size/1024/1024 转换成了我们熟知的概念。当然可以让程序慢慢跑吧,我们可以先去喝杯咖啡, 顺便数一下天上的星星,噫,我为什么要数星星?

点赞
关注极客数据微信公众号

发表评论

电子邮件地址不会被公开。 必填项已用*标注