递归不会更新字典

时间:2019-06-23 16:28:52

标签: python recursion

给出文件夹的路径,我必须在所有文件夹中进行搜索,并将在这些文件夹中找到的扩展名作为关键字放入字典中。

作为值,我必须将扩展名的最大深度与最小深度之间的差值放入。

例如:

(深度始终为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

我的代码中的问题是它返回的是最后一个扩展名,而不是我找到的所有扩展名。

0 个答案:

没有答案