Py学习  »  Python

Python小例子-递归搜索目录,找出最大的文件

蚂蚁学Python • 3 年前 • 331 次点击  

如果磁盘满了,你会怎么做?


有些现成的工具可以用,比如360清理大师


不过,今天给大家分享下,用Python也可以实现类似功能,比如我们用Python递归扫描目录、找出最大的文件,自己决定是否删除


## 涉及到的知识点


  1. 通过os.walk(search_dir),可以递归扫描目录;

  2. os.path.getsize方法,可以获取文件的大小;

  3. sorted函数,可以进行列表排序


## 第一步骤:扫描文件、获取大小


os.walk会返回三个变量:

- root:当前的递归到的目录

- dirs:当前目录的子目录列表

- files:当前目录的普通文件列表


也就是说,我们在for循环中,直接扫描files就能得到当前目录下的所有普通文件,获取它的大小进行记录即可。


import os
# d:/workbenc/xxxsearch_dir = "/Users/peishuaishuai/workbench"
result_files = []for root, dirs, files in os.walk(search_dir): for file in files: if file.endswith(".txt"): file_path = f"{root}/{file}" result_files.append((file_path, os.path.getsize(file_path) / 1000))


## 第二步骤:列出最大的10个文件


print(    sorted(result_files,           key=lambda x: x[1],           reverse=True)[:10])


## 运行程序,最终的效果输出:




## 视频讲解



谢谢大家关注我:


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/111211
 
331 次点击