【发布时间】:2011-08-29 21:32:28
【问题描述】:
下面给出了一个用于返回其参数大小总和的函数,该参数可以是单个文件/目录或文件/目录列表。该代码给出了错误消息RuntimeError: maximum recursion depth exceeded while calling a Python object 但是我尝试对此进行测试。
如何解决这个问题?
谢谢
放心
#!/usr/bin/python3.1
import os
def fileSizes(f):
if hasattr(f,'__iter__'):
return sum(filter(fileSizes,f))
if os.path.isfile(f):
return os.path.getsize(f)
elif os.path.isdir(f):
total_size = os.path.getsize(f)
for item in os.listdir(f):
total_size += fileSizes(os.path.join(f, item))
return total_size
【问题讨论】:
-
listdir 是否包含当前目录?你循环的迭代器是什么?
-
os.listdir()不包括当前目录或父目录。