Я пытаюсь получить последнее изменение в каталоге, а не только последний измененный файл.
Пока у меня есть этот код:
import pathlib
import logging
# Set logging level
logging.basicConfig(level=logging.DEBUG)
# Define some paths
source_path = pathlib.Path("U:")
logging.info(f"Source directory is {source_path}")
# Latest path
latest_path = max(source_path.glob('*'),
key=lambda path: path.stat().st_ctime)
last_path = None
while True:
try:
# Latest path
latest_path = max(source_path.glob('*'),
key=lambda path: path.stat().st_ctime)
except FileNotFoundError:
pass
if not latest_path == last_path:
logging.info(f"Last changed path is {latest_path}")
last_path = latest_path
Что он делает, так это print из последних изменений в каталоге (в настоящее время U:
)
Вот пример вывода:
INFO:root:Source directory is U:
INFO:root:Last changed path is U:Website Downloader
INFO:root:Last changed path is U:New Text Document.txt <-- Created it
INFO:root:Last changed path is U:hi.txt <-- Renamed it
INFO:root:Last changed path is U:Website Downloader <-- Deleted hi.txt
INFO:root:Last changed path is U:New folder <-- Created it
INFO:root:Last changed path is U:hi <-- Renamed it
INFO:root:Last changed path is U:Website Downloader <-- Deleted hi (directory)
Он пропустил такие вещи, как сохранение изменений в файлах в базовом каталоге (U:
) , новые, измененные и удаленные файлы в каталогах.
Я бы хотел, чтобы он говорил, например:
INFO:root:Source directory is U:
INFO:root:File created: U:New Text Document.txt
INFO:root:File modified: U:New Text Document.txt
INFO:root:File deleted: U:New Text Document.txt
INFO:root:Directory created: U:New Folder
INFO:root:File created: U:New Folder\New Text Document.txt
INFO:root:File modified: U:New Folder\New Text Document.txt
INFO:root:File deleted: U:New Folder\New Text Document.txt
INFO:root:Directory created: U:New Folder\New Folder
INFO:root:Directory created: U:New Folder\New Folder\New Folder
INFO:root:Directory deleted: U:New Folder\New Folder\New Folder
INFO:root:Directory deleted: U:New Folder
Возможно ли это даже в Python?
Заранее спасибо