用 Python 快速找到最大的文件

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

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

[[433659]]

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

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

借助 Python,代码很简洁:

 

  1. import os 
  2. import time 
  3.  
  4. from os.path import join, getsize 
  5. from heapq import nlargest 
  6.  
  7.  
  8. def walk_files_and_sizes(start_at: str): 
  9.     for root, _, files in os.walk(start_at): 
  10.         for file in files: 
  11.             path = join(root, file) 
  12.             try: 
  13.                 size = getsize(path)  # bytes 
  14.                 yield path, size 
  15.             except OSError: 
  16.                 continue 
  17.  
  18.  
  19. def largest_files(n: int, start_at: str) -> None: 
  20.     MB = 1024 * 1024 
  21.     largest = nlargest(n, walk_files_and_sizes(start_at), key=lambda x: x[1]) 
  22.  
  23.     for path, size in largest: 
  24.         print(f'{size//MB} MB {path}'
  25.  
  26.  
  27.  
  28. if __name__ == '__main__'
  29.     start = time.perf_counter() 
  30.     largest_files(10, "/Users/aaron/"
  31.     elapsed = time.perf_counter() - start 
  32.     print(f'{elapsed} seconds elapsed'

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

 

 

 

 

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

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

 

  1. largest_files(10, "C:/Users/xxx/"

最后的话

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

责任编辑:华轩 来源: Python七号
相关推荐

2019-10-11 08:00:00

Linux命令最大文件

2021-02-03 10:43:54

Linux系统磁盘

2021-12-26 18:32:26

Python Heic 文件

2019-11-20 10:24:43

Linux重复文件磁盘

2019-11-20 10:23:51

磁盘WindowsLinux

2023-10-22 20:09:45

Linux命令

2023-09-04 10:10:47

插件页面元素

2023-09-25 15:08:43

Python方离群值

2010-03-23 12:42:55

python快速支付接

2012-05-29 21:25:32

iOS

2021-01-17 16:26:19

JSONKey爬虫

2021-01-05 16:42:07

人工智能邮件机器学习

2010-12-30 16:11:10

Visual StudWindows部署VC++

2016-12-28 10:04:11

2021-09-09 06:55:44

Python浏览器程序

2022-07-25 11:33:48

Python大文件

2010-09-29 12:15:40

2022-08-31 12:57:58

PythonTemplate文件报告

2017-11-03 10:40:25

Python复制文件方法

2018-06-15 10:25:43

Python HTTPFTP服务器
点赞
收藏

51CTO技术栈公众号