Лучший подход для поиска последних n файлов, созданных в папке в Linux, основанный на сравнении временных меток

Мне нужен список файлов, которые были созданы после определенного периода времени.

Я использовал следующий фрагмент кода для достижения того же:

for p, ds, fs in os.walk(idirpath):
    for fn in fs:
        filepath = os.path.join(p, fn)
        if datetime.datetime.fromtimestamp(os.path.getmtime(filepath)) >= datetime.datetime.strptime(lasfilecredt,'%Y-%m-%d %H:%M:%S'):
           filelist.append((filepath, os.path.getmtime(filepath)))

Где: idirpath имеет путь, где присутствуют файлы для выбора.

lasfilecredt имеет значение метки времени, используемое для идентификации необходимых файлов.

filelist используется для хранения файлов, идентифицированных вместе с временем их создания.

Есть ли лучший способ добиться этого? Я пробовал subprocess.popen в прошлом, но хотел использовать эту опцию для упрощения обслуживания моего кода в будущем.

Существуют ли какие-либо конкретные сценарии, когда приведенный выше фрагмент кода может неправильно идентифицировать требуемые файлы.

Приведенный выше фрагмент кода используется для того, чтобы убедиться, что ранее обработанные файлы не выбираются снова при следующем запуске (символ ">=" в условии IF означает, что мы не перезаписываем выбор файлов, иначе нет причин не иметь ">").

Этот код при развертывании в рабочей среде, похоже, дает сбой случайно, по крайней мере, дважды за три месяца.

Нужны некоторые предложения / помощь, чтобы определить сценарии, когда это может потерпеть неудачу.

0 ответов

Другие вопросы по тегам