python - 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")
,它没有返回。
如果有人可以向我解释我做错了什么,那将不胜感激。
解决方案
推荐阅读
- c# - Postman - 如何使用 V2 端点将用户导入 BIM 360 项目
- c++ - C++ 中的错误消息:函数/变量“未在此范围内声明”,变量“是私有的”
- reactjs - 如果文本值中有表情符号,则 TextInput 样式不会更新
- firebase - Firebase认证,IOS导致PlatformException
- r - 在 r 的范围内查找值并将值的数量相加
- java - Springboot -> Springboot 2:在类路径上检测到 2 个 Spring WebApplicationInitializers
- c# - 以编程方式设置下拉列表选择不会在事件处理程序中等待
- c++ - 访问类树层次结构中的对象时避免使用空指针
- python - Flask在开发模式下无法运行,找不到flask模块
- ajax - 为什么 Symfony 控制器返回模板被和标签剪断?