Я пытаюсь сравнить два текстовых файла с определенной датой, но я в тупике. Я создал тестовую папку с тремя текстовыми файлами с датами изменения в возрасте от одного до 35 дней.
I.E: red.txt - 35 дней, blue.txt - один день, а green.txt - 15 дней.
Для моих двух сравниваемых файлов первый файл должен находиться в диапазоне от 13 до 15 дней, а второй - один день или меньше. Таким образом, в этом примере «green.txt» станет «file1», а «blue.txt» станет «file2», а затем будет сравниваться с difflib
, но у меня проблемы с синтаксисом или, возможно, даже с логикой , Я использую datetime
с timedelta
, чтобы попытаться заставить это работать, но в моих результатах всегда будет храниться самый старый измененный файл, который за 15 дней для 'file1'. Вот мой код:
import os, glob, sys, difflib, datetime as d
p_path = 'C:/test/Text_file_compare_test/'
f_list = glob.glob(os.path.join(p_path, '*.txt'))
file1 = ''
file2 = ''
min_days_ago = d.datetime.now() - d.timedelta(days=1)
max_days_ago = d.datetime.now() - d.timedelta(days=13 <= 15)
for file in f_list:
filetime = d.datetime.fromtimestamp(os.path.getmtime(file))
if filetime < max_days_ago:
file1 = file
if filetime > min_days_ago:
file2 = file
with open(file1) as f1, open(file2) as f2:
d = difflib.Differ()
result = list(d.compare(f1.readlines(), f2.readlines()))
sys.stdout.writelines(result)
Я уверен, что с кодом что-то не так:
max_days_ago = d.datetime.now() - d.timedelta(days=13 <= 15)
Может быть, я просто не вижу в модуле datetime
чего-то очевидного. Может кто-нибудь пролить свет на меня? Кроме того, это на Windows 10 Python 3.7.2. Заранее спасибо!