社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

蚂蚁学Python • 4 年前 • 537 次点击  

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


有些现成的工具可以用,比如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
 
537 次点击