【问题标题】:python filecmp.dircmp ignore wildcardpython filecmp.dircmp 忽略通配符
【发布时间】:2017-09-18 14:09:52
【问题描述】:

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

【问题讨论】:

    标签: python file compare


    【解决方案1】:

    您可以使用 glob https://docs.python.org/3/library/glob.html 扩展模式并将扩展的列表提供给忽略参数。

    假设您有左侧文件夹和右侧文件夹,然后您想从比较中过滤掉所有 *.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)
    

    【讨论】:

      猜你喜欢
      • 2022-09-28
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 2012-10-20
      • 2018-12-05
      相关资源
      最近更新 更多