# 6.7 `filecmp` -- ファイルおよびディレクトリの比較

`filecmp` モジュールでは、ファイルおよびディレクトリを 比較するため、様々な時間／正確性のトレードオフに関するオプションを 備えた関数を定義しています。

`filecmp` モジュールでは以下の関数を定義しています:

`cmp`( | f1, f2[, shallow[, use_statcache]])

  名前が f1 および f2 のファイルを比較し、二つのファイルが 同じらしければ `True` を返し、そうでなければ `false` を 返します。

  shallow が与えられておりかつ偽でなければ、`os.stat()` の返すシグネチャが一致するファイルは同じであると見なされます。 バージョン2.3 以降で変更された 仕様: use_statcache は廃止され、指定しても無視されます。

  この関数で比較されたファイルは `os.stat()` シグネチャが 変更されるまで再び比較されることはありません。use_statcache を真にすると、キャッシュ無効化機構を失敗させます -- そのため、 `statcache` のキャッシュから古いファイル stat 値が 使われます。

  可搬性と効率のために、個の関数は外部プログラムを一切呼び出さないので 注意してください。

`cmpfiles`( | dir1, dir2, common[, shallow[, use_statcache]])

  ファイル名からなる 3つのリスト: match、mismatch、 errors を返します。match には双方のディレクトリで 一致したファイルのリストが含まれ、mismatch にはそうでない ファイル名のリストが入ります。そして errors は比較されなかった ファイルが列挙されます。ファイルによっては、ユーザにそのファイル を読む権限がなかったり、比較を完了することができなかった場合以外 のその他諸々の理由により、 errors に列挙されることがあります。

  引数 common は両方のディレクトリにあるファイルのリストです。 引数 shallow および use_statcache はその意味も標準 の設定も `filecmp.cmp()` と同じです。

例:

    >>> import filecmp
    >>> filecmp.cmp('libundoc.tex', 'libundoc.tex')
    True
    >>> filecmp.cmp('libundoc.tex', 'lib.tex')
    False