Python:如何使用递归和基本操作系统方法检索目录中最大文件的路径

2024-10-03 11:24:49 发布

您现在位置:Python中文网/ 问答频道 /正文

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

例如:

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

文件布局:First screenSecond ScreenThird Screen

我不允许在单个文件上多次使用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"),它返回none

如果有人能向我解释我做错了什么,我将不胜感激


Tags: 文件path方法字符串代码sizeifos