11.5. filecmp

: Lib/filecmp.py


filecmp difflib

filecmp :

filecmp.cmp(f1, f2, shallow=True)

f1 f2 True False

shallow os.stat()

os.stat() clear_cache()

filecmp.cmpfiles(dir1, dir2, common, shallow=True)

dir1 dir2 common

3: match, mismatch, errors match mismatch errors errors

shallow filecmp.cmp()

cmpfiles('a', 'b', ['c', 'd/e']) a/c b/c a/d/e b/d/e 'c' 'd/e' 3

filecmp.clear_cache()

filecmp mtime

3.4 .

11.5.1. dircmp

class filecmp.dircmp(a, b, ignore=None, hide=None)

a b ignore filecmp.DEFAULT_IGNORES hide [os.curdir, os.pardir]

dircmp filecmp.cmp()

dircmp :

report()

a b (sys.stdout )

report_partial_closure()

a b

report_full_closure()

a b ()

dircmp

__getattr__()

left

a

right

b

left_list

a hide ignore

right_list

b hide ignore

common

a b

left_only

a

right_only

b

common_dirs

a b

common_files

a b

common_funny

a b os.stat()

same_files

a b

diff_files

a b

funny_files

a b

subdirs

common_dirs dircmp

filecmp.DEFAULT_IGNORES

3.4 .

dircmp

subdirs 2 :

>>> 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') 
>>> print_diff_files(dcmp)