Python Glossary Русский

all Python 3filecmpterm

filecmp.dircmp

comparing directories

A class that compares two directories: lists of common, unique, identical and differing files, subdirectory walk, and a report.

Syntax

filecmp.dircmp(a, b, ignore=None, hide=None, *, shallow=True)

Attributes are computed lazily on first access: left_only, right_only, same_files, diff_files, common_dirs, subdirs. Files are compared shallowly by size and mtime (the shallow parameter exists only since 3.13), so diff_files can miss a difference. '.git', '__pycache__' and others from DEFAULT_IGNORES are ignored by default. diff_files covers only the top level — go deeper through subdirs or report_full_closure().

Examples

import filecmp, os
os.makedirs('L/sub'); os.makedirs('R/sub')
for d in 'LR':
    open(f'{d}/same.txt', 'w').write('1')
    open(f'{d}/sub/x.txt', 'w').write(d)
open('L/only.txt', 'w').write('o')
dc = filecmp.dircmp('L', 'R')
print(dc.left_only, dc.same_files, dc.diff_files)  # → ['only.txt'] ['same.txt'] []
print(dc.subdirs['sub'].diff_files)  # → ['x.txt']
# Python 3.13+
import filecmp, os
os.makedirs('L'); os.makedirs('R')
open('L/f.txt', 'w').write('abc'); open('R/f.txt', 'w').write('xyz')
st = os.stat('L/f.txt')
os.utime('R/f.txt', ns=(st.st_atime_ns, st.st_mtime_ns))
print(filecmp.dircmp('L', 'R').diff_files)  # → []
print(filecmp.dircmp('L', 'R', shallow=False).diff_files)  # → ['f.txt']

See also

Open in the full glossarydocs.python.orgReport an inaccuracy