python文件cmp.dircmp忽略通配符

2024-05-19 21:14:55 发布

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

在文件cmp.dircmp用于比较两个文件夹。 它接受一个参数ignore,但它只进行精确匹配而不是通配符匹配。知道如何忽略模式吗?在


Tags: 文件文件夹参数模式ignorecmp通配符dircmp
1条回答
网友
1楼 · 发布于 2024-05-19 21:14:55

您可以使用globhttps://docs.python.org/3/library/glob.html展开模式并将展开的列表提供给ignore参数。在

假设您有folder left和folder right,然后希望从比较中筛选出所有*.foo和*.bar

import os
import glob
import filecmp

ignore_list = []
patterns_to_ignore = ['*.foo', '*.bar']
for pattern in patterns_to_ignore:
    ignore_left = [os.path.split(expanded)[1] for expanded in glob.glob(os.path.join(left, pattern))]
    ignore_right = [os.path.split(expanded)[1] for expanded in glob.glob(os.path.join(right, pattern))]
    ignore_list.extend(ignore_left)
    ignore_list.extend(ignore_right)


diff = filecmp.dircmp(left, right, ignore=ignore_list)

相关问题 更多 >