Python小例子-递归搜索目录,找出最大的文件
蚂蚁学Python
共 908字,需浏览 2分钟
·
2021-04-08 12:17
如果磁盘满了,你会怎么做?
有些现成的工具可以用,比如360清理大师
不过,今天给大家分享下,用Python也可以实现类似功能,比如我们用Python递归扫描目录、找出最大的文件,自己决定是否删除
## 涉及到的知识点
通过os.walk(search_dir),可以递归扫描目录;
os.path.getsize方法,可以获取文件的大小;
sorted函数,可以进行列表排序
## 第一步骤:扫描文件、获取大小
os.walk会返回三个变量:
- root:当前的递归到的目录
- dirs:当前目录的子目录列表
- files:当前目录的普通文件列表
也就是说,我们在for循环中,直接扫描files就能得到当前目录下的所有普通文件,获取它的大小进行记录即可。
import os
# d:/workbenc/xxx
search_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]
)
## 运行程序,最终的效果输出:
## 视频讲解
谢谢大家关注我:
评论