Python Windows: легко получить дату изменения файла

Вы энтузиаст Python, работающий в Windows, и вам интересно, как получить дату изменения файла? Вы пришли в нужное место! В этой статье блога мы рассмотрим несколько простых, но эффективных методов выполнения этой задачи. Так что хватайте шляпу программиста и приступим!

Метод 1: модуль os.path

Встроенный модуль os.pathPython предоставляет удобную функцию под названием getmtime(), которая позволяет нам получить временную метку последнего изменения файла. Вот пример фрагмента кода:

import os.path
from datetime import datetime
file_path = 'C:/path/to/your/file.txt'
timestamp = os.path.getmtime(file_path)
modified_date = datetime.fromtimestamp(timestamp)
print(f"The file was last modified on: {modified_date}")

Метод 2: модуль pathlib

Если вы предпочитаете более современный подход, вы можете использовать модуль pathlib, который предлагает объектно-ориентированный способ работы с путями к файлам. Вот как вы можете получить дату изменения, используя pathlib:

from pathlib import Path
from datetime import datetime
file_path = Path('C:/path/to/your/file.txt')
modified_date = datetime.fromtimestamp(file_path.stat().st_mtime)
print(f"The file was last modified on: {modified_date}")

Метод 3: модуль win32file (только для Windows)

Для обеспечения функциональности, специфичной для Windows, вы можете использовать модуль win32fileиз пакета pywin32. Этот метод обеспечивает низкоуровневый доступ к функциям Windows API. Вот пример:

import win32file
import pywintypes
file_path = r'C:\path\to\your\file.txt'
# Open the file in read-only mode
handle = win32file.CreateFile(
    file_path, win32file.GENERIC_READ, win32file.FILE_SHARE_READ, None,
    win32file.OPEN_EXISTING, win32file.FILE_ATTRIBUTE_NORMAL, None
)
# Retrieve the file information
file_info = win32file.GetFileInformationByHandle(handle)
modified_date = pywintypes.Time(file_info[-2]).strftime('%Y-%m-%d %H:%M:%S')
print(f"The file was last modified on: {modified_date}")

Метод 4. Модуль WMI (инструментарий управления Windows)

Другой метод, специфичный для Windows, предполагает использование модуля WMI, который обеспечивает доступ к широкому спектру системной информации. Вот пример того, как получить дату изменения, используя WMI:

import wmi
file_path = 'C:\\path\\to\\your\\file.txt'
# Connect to the WMI service
c = wmi.WMI()
# Query for the file information
query = f"SELECT LastModified FROM CIM_DataFile WHERE Name = '{file_path}'"
result = c.query(query)
# Extract the modified date
for item in result:
    modified_date = item.LastModified.split('.')[0]
print(f"The file was last modified on: {modified_date}")

Подведение итогов

Вот и все! Мы рассмотрели четыре различных метода получения даты изменения файла с помощью Python в Windows. Не стесняйтесь выбирать метод, который соответствует вашим предпочтениям и требованиям проекта.

Не забудьте импортировать необходимые модули в соответствии с выбранным вами методом и не забудьте заменить 'C:/path/to/your/file.txt'фактическим путем к файлу, который вы хотите проверить.

Теперь у вас есть знания по обработке файлов и извлечению измененных данных в Python в Windows. Приятного кодирования!