从递归python函数的返回值创建平面列表

2024-05-19 18:41:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用python中的dircmp函数比较两个目录

def cmpdirs(dir_cmp):
    for sub_dcmp in dir_cmp.subdirs.values():
        cmpdirs(sub_dcmp)
    return dir_cmp.left_only, dir_cmp.right_only, dir_cmp.common_files

if __name__ == '__main__':
    dcmp = dircmp('dir1', 'dir2')
    result = list(cmpdirs(dcmp))

我想得到的结果是:

^{pr2}$

最好的办法是什么?在


Tags: 函数in目录onlyforreturndefdir
1条回答
网友
1楼 · 发布于 2024-05-19 18:41:50

以前从来没有用过dircmp…但是我想看看你的代码。。。在

def cmpdirs(dir_cmp):
    # make copies of the comparison results
    left   = dir_cmp.left_only[:]
    right  = dir_cmp.righ_only[:]
    common = dir_cmp.common_files[:]

    for sub_dcmp in dir_cmp.subdirs.values():
        sub_left, sub_right, sub_common = cmpdirs(sub_dcmp)

        # join the childrens results
        left   += sub_left
        right  += sub_right
        common += sub_common

    # return the merged results
    return (left, right, common)

if __name__ == '__main__':
    dcmp   = dircmp('dir1', 'dir2')
    result = cmpdirs(dcmp)

相关问题 更多 >