给出文件夹的路径,我必须在所有文件夹中进行搜索,并将在这些文件夹中找到的扩展名作为关键字放入字典中。
作为值,我必须将扩展名的最大深度与最小深度之间的差值放入。
例如:
(深度始终为0)
A1 / a / b / c / d / e / f / g / h / hello.txt |深度8
A1 / d / f / hello.txt |深度2
因此在字典中应为{'txt':6}
应该使用OS库实施,不能接受os.walk!
我想做的是制作2个字典,在第一个字典中,我将MIN深度作为值,在第二个字典中,我将MAX深度作为值,这样我可以减去2个值字典。
import os, os.path
def es18(path):
diz,diz2 = _es18(path)
print(diz,diz2)
def _es18(path,h = 0): #h = depth =0
diz = {}
diz2 = {}
for f in os.listdir(path):
fn = path + "/" + f
if os.path.isdir(fn):
diz,diz2 = _es18(fn,h+1)
diz.update(diz)
diz2.update(diz2)
else:
if f[-3:] not in diz:
diz[f[-3:]] = h
diz2[f[-3:]] = h
else:
diz[f[-3]] = min(diz[f[-3]],h)
diz2[f[-3]] = max(diz[f[-3]],h)
diz.update(diz)
diz2.update(diz2)
return diz,diz2
我的代码中的问题是它返回的是最后一个扩展名,而不是我找到的所有扩展名。