:mod:`filecmp` --- File and Directory Comparisons
Source code: :source:`Lib/filecmp.py`
The :mod:`filecmp` module defines the following functions:
The :class:`dircmp` class
Construct a new directory comparison object, to compare the directories a and b. ignore is a list of names to ignore, and defaults to :attr:`filecmp.DEFAULT_IGNORES`. hide is a list of names to hide, and defaults to [os.curdir, os.pardir].
The :class:`dircmp` class provides the following methods:
The :class:`dircmp` class offers a number of interesting attributes that may be used to get various bits of information about the directory trees being compared.
Note that via :meth:`__getattr__` hooks, all attributes are computed lazily, so there is no speed penalty if only those attributes which are lightweight to compute are used.
Here is a simplified example of using the subdirs attribute to search recursively through two directories to show common different files:
>>> from filecmp import dircmp >>> def print_diff_files(dcmp): ... for name in dcmp.diff_files: ... print("diff_file %s found in %s and %s" % (name, dcmp.left, ... dcmp.right)) ... for sub_dcmp in dcmp.subdirs.values(): ... print_diff_files(sub_dcmp) ... >>> dcmp = dircmp('dir1', 'dir2') # doctest: +SKIP >>> print_diff_files(dcmp) # doctest: +SKIP