乐之之

知而行乐,乐而行之,天道酬勤,学无止境。
25、递归搜索目录找出最大的文件

题目:

  在变量名serach_dir中,随意添加一个文件路径,找出所有文件下最大的文件。

思路:

  1、输入文件路径。

  2、递归遍历该文件路径下所有子目录。

  3、遍历子目录下所有文件的绝对路径,并逐一添加且计算大小。

  4、从大到小排序,输出前十个文件。

结果:

import os
search_dir = "/python_crawler"
result_files = []
# 递归遍历所有子目录
for root,dirs,files in os.walk(search_dir):  # os.walk传入路径名进行递归
    # root代表当前目录,dirs代表当前目录下的子目录,files代表当前目录下普通文件
    for file in files:
        file_path = f"{root}/{file}" # (整个路经)绝对路径=root/file
        if file.endswith(".txt"):   # 判断是不是以.txt为结尾的文件
            result_files.append((file_path,
                                 os.path.getsize(file_path)/1000))

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

知识点:

  1、os.walk传入路径名进行递归。

  2、root、dirs、files的含义。

  • root代表当前目录。
  • dirs代表当前目录下的子目录。
  • files代表当前目录下普通文件。

  3、file.endswith(".txt") 输出以.txt为结尾的文件。

posted on 2022-11-10 22:20  乐之之  阅读(64)  评论(0编辑  收藏  举报