本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
用 Python 快速找到最大的文件
kenrry1992 · 228浏览 · 发布于2021-11-08 +关注

现在的电脑差不多都是固态硬盘了,速度很快,但容量不会太大,经常会出现磁盘空间不足的情况,怎么办,删除那些不重要的最大的文件是最有效的办法。

那么如何用找到最大的文件呢?比如说找到最大的前 10 个文件?

思路:我们遍历目录,将文件路径和文件大小作为生成器返回,然后插入大小为 10 的大顶堆,最后将大顶堆的内容打印即可。

借助 Python,代码很简洁:

import os 
import time 

from os.path import join, getsize 
from heapq import nlargest 


def walk_files_and_sizes(start_at: str): 
    for root, _, files in os.walk(start_at): 
        for file in files: 
            path = join(root, file) 
            try: 
                size = getsize(path)  # bytes 
                yield path, size 
            except OSError: 
                continue 


def largest_files(n: int, start_at: str) -> None: 
    MB = 1024 * 1024 
    largest = nlargest(n, walk_files_and_sizes(start_at), key=lambda x: x[1]) 

    for path, size in largest: 
        print(f'{size//MB} MB {path}') 



if __name__ == '__main__': 
    start = time.perf_counter() 
    largest_files(10, "/Users/aaron/") 
    elapsed = time.perf_counter() - start 
    print(f'{elapsed} seconds elapsed')

    我在自己电脑上跑了下,200 GB 左右的目录,123 秒就跑完了:

    接下来删除不需要的文件就可以了。

    如果是 Windows 系统也是可以的:

    largest_files(10, "C:/Users/xxx/")

      最后的话

      本文的方法非常实用,可以收藏,说不定那天,这个小工具就帮你解决了大问题。


      相关推荐

      PHP实现部分字符隐藏

      沙雕mars · 1312浏览 · 2019-04-28 09:47:56
      Java中ArrayList和LinkedList区别

      kenrry1992 · 896浏览 · 2019-05-08 21:14:54
      Tomcat 下载及安装配置

      manongba · 957浏览 · 2019-05-13 21:03:56
      JAVA变量介绍

      manongba · 953浏览 · 2019-05-13 21:05:52
      什么是SpringBoot

      iamitnan · 1077浏览 · 2019-05-14 22:20:36
      加载中

      0评论

      评论
      分类专栏
      小鸟云服务器
      扫码进入手机网页