Python 3.4+filecmpфункция
filecmp.clear_cache()
сравнение файлов
Очищает кеш результатов filecmp.cmp(), чтобы следующее сравнение заново прочитало файлы.
Синтаксис
filecmp.clear_cache()
cmp() запоминает ответ по паре имён и их сигнатурам (размер, mtime). Если файл переписан тем же размером в ту же секунду (или на системе с грубым mtime), сигнатура не меняется и cmp() вернёт старый ответ даже при shallow=False. В долгоживущих процессах и тестах, которые быстро пишут файлы, перед сравнением зовите clear_cache(). Появилась в 3.4.
Примеры
import filecmp, os
T = (1, 1_700_000_000_000_000_000) # одно и то же время для обоих файлов
open('a.txt', 'w').write('hello'); os.utime('a.txt', ns=T)
open('c.txt', 'w').write('hello'); os.utime('c.txt', ns=T)
print(filecmp.cmp('a.txt', 'c.txt', shallow=False)) # → True
open('c.txt', 'w').write('HELLO'); os.utime('c.txt', ns=T) # размер и mtime прежние
print(filecmp.cmp('a.txt', 'c.txt', shallow=False)) # → True — ответ из кеша
filecmp.clear_cache()
print(filecmp.cmp('a.txt', 'c.txt', shallow=False)) # → False
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности