如何利用Python 快速找到最大文件
作者:somenzz 时间:2021-08-06 23:22:47
现在的电脑差不多都是固态硬盘了,速度很快,但容量不会太大,经常会出现磁盘空间不足的情况,怎么办,删除那些不重要的最大的文件是最有效的办法。
那么如何用找到最大的文件呢?比如说找到最大的前 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/")
来源:https://developer.51cto.com/art/202111/689052.htm
标签:Python,最大文件
0
投稿
猜你喜欢
在Python中使用__slots__方法的详细教程
2022-10-30 09:46:10
python实现经纬度采样的示例代码
2021-12-25 13:24:37
Python二维数组实现求出3*3矩阵对角线元素的和示例
2021-10-03 20:19:24
mysql 模糊查询 concat()的用法详解
2024-01-14 01:48:46
Python的线程之线程同步
2021-02-05 23:23:32
asp中把数据表映射成ajax可调用的json格式的方法
2010-01-22 15:27:00
Python之re操作方法(详解)
2022-05-15 18:38:15
python静态方法实例
2023-02-17 12:03:22
Python模拟简单电梯调度算法示例
2021-09-27 14:52:31
Pytorch实现简单自定义网络层的方法
2021-01-13 16:02:55
python脚本爬取字体文件的实现方法
2022-09-07 18:20:55
浅析Python编写函数装饰器
2023-06-07 12:20:05
MySQL中CURRENT_TIMESTAMP的使用方式
2024-01-12 20:10:29
如何获知IE和NC客户端的屏幕分辨率?
2009-11-23 20:56:00
python判断字符串是否是json格式方法分享
2023-01-02 20:50:37
Python字典循环添加一键多值的用法实例
2021-07-15 14:48:48
什么是XSL?
2007-11-05 19:47:00
Asp+ajax打造无刷新新闻评论系统
2008-02-12 15:43:00
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021-11-13 16:52:41
网页中插入视频播放代码全集
2007-10-22 17:48:00