首页 > 解决方案 > Python:如何使用递归和基本 os 方法来检索目录中最大文件的路径

问题描述

所以最近我的任务是编写一个名为 getLargestFile 的方法,该方法接受一个路径并在末尾返回一个包含所有文件夹/文件名的字符串。

例子:

assert(findLargestFile("sampleFiles/folderA") == "sampleFiles/folderA/folderC/giftwrap.txt"

文件布局:第一屏 第二屏 第三屏

我不允许使用 os.walk,也不允许在单个文件上多次调用 os.path.getsize,此外,我不能使用 listFiles 在一个地方列出所有文件。(也只是基本的操作系统方法)

我的代码目前如下:

def findLargestFile(path):
    findLargestFileHelper(path)


def findLargestFileHelper(path, size=0, pathToLargest=""):
    if (os.path.isdir(path) == False):
        if os.path.getsize(path) > size:
            size = os.path.getsize(path)
            pathToLargest = os.path.dirname(path) + os.path.basename(path)
    else:
        for filename in os.listdir(path):
            findLargestFileHelper(path + "/" + filename)
    
    return pathToLargest

我知道代码中肯定存在错误,但我不太确定这个文件递归的一般概念,并且不知道为什么当我调用:

findLargestFile("sampleFiles/folderA"),它没有返回。

如果有人可以向我解释我做错了什么,那将不胜感激。

标签: python

解决方案


推荐阅读