import os
def func(path,lst=[]):
if os.path.isfile(path):
lst.append(os.path.getsize(path))
return lst
else:
lst1=os.listdir(path)
for item in lst1:
if os.path.isfile(os.path.join(path,item)):
lst.append(os.path.getsize(os.path.join(path,item)))
return lst
else:
func(os.path.join(path,item),lst)
为什么这段代码返回的是None不能返回一个列表?
求大佬帮忙说一下吧
最后一个else没有return.
import os
def func(path,lst=[]):
if os.path.isfile(path):
lst.append((path,os.path.getsize(path)))
return lst
else:
lst1=os.listdir(path)
for item in lst1:
if os.path.isfile(os.path.join(path,item)):
lst.append((os.path.join(path,item),os.path.getsize(os.path.join(path,item))))
else:
func(os.path.join(path,item),lst)
return lst
print(func('obj'))
已经懂了递归运行逻辑了。。谢谢
import os
path=r'F:\PythonProject1\day23'
def func(path):
lst = []
if os.path.isfile(path):
lst.append(os.path.getsize(path))
else:
lst1 = os.listdir(path)
for item in lst1:
if os.path.isfile(os.path.join(path, item)):
lst.append(os.path.getsize(os.path.join(path, item)))
else:
lst=func(os.path.join(path, item))
return lst
return lst
print(func(path))