Python время последнего изменения файла

Python время последнего изменения файла

Модуль os предоставляет множество функций для работы с операционной системой, причём их поведение, как правило, не зависит от ОС, поэтому программы остаются переносимыми. Здесь будут приведены наиболее часто используемые из них.

Будьте внимательны: некоторые функции из этого модуля поддерживаются не всеми ОС.

os.name имя операционной системы. Доступные варианты: posix , nt , mac , os2 , ce , java . os.environ словарь переменных окружения. Изменяемый (можно добавлять и удалять переменные окружения). os.getlogin() имя пользователя, вошедшего в терминал (Unix). os.getpid() текущий id процесса. os.uname() информация об ОС. возвращает объект с атрибутами: sysname — имя операционной системы, nodename — имя машины в сети (определяется реализацией), release — релиз, version — версия, machine — идентификатор машины. os.access(path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True) проверка доступа к объекту у текущего пользователя. Флаги: os.F_OK — объект существует, os.R_OK — доступен на чтение, os.W_OK — доступен на запись, os.X_OK — доступен на исполнение. os.chdir(path) смена текущей директории. os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True) смена прав доступа к объекту ( mode — восьмеричное число). os.chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True) меняет id владельца и группы (Unix). os.getcwd() текущая рабочая директория. os.link(src, dst, *, src_dir_fd=None, dst_dir_fd=None, follow_symlinks=True) создаёт жёсткую ссылку. os.listdir(path=».») список файлов и директорий в папке. os.mkdir(path, mode=0o777, *, dir_fd=None) создаёт директорию. OSError , если директория существует. os.makedirs(path, mode=0o777, exist_ok=False) создаёт директорию, создавая при этом промежуточные директории. os.remove(path, *, dir_fd=None) удаляет путь к файлу. os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None) переименовывает файл или директорию из src в dst . os.renames(old, new) переименовывает old в new , создавая промежуточные директории. os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None) переименовывает из src в dst с принудительной заменой. os.rmdir(path, *, dir_fd=None) удаляет пустую директорию. os.removedirs(path) удаляет директорию, затем пытается удалить родительские директории, и удаляет их рекурсивно, пока они пусты. os.symlink(source, link_name, target_is_directory=False, *, dir_fd=None) создаёт символическую ссылку на объект. os.sync() записывает все данные на диск (Unix). os.truncate(path, length) обрезает файл до длины length . os.utime(path, times=None, *, ns=None, dir_fd=None, follow_symlinks=True) модификация времени последнего доступа и изменения файла. Либо times — кортеж (время доступа в секундах, время изменения в секундах), либо ns — кортеж (время доступа в наносекундах, время изменения в наносекундах). os.walk(top, topdown=True, onerror=None, followlinks=False) генерация имён файлов в дереве каталогов, сверху вниз (если topdown равен True ), либо снизу вверх (если False ). Для каждого каталога функция walk возвращает кортеж (путь к каталогу, список каталогов, список файлов). os.system(command) исполняет системную команду, возвращает код её завершения (в случае успеха 0 ). os.urandom(n) n случайных байт. Возможно использование этой функции в криптографических целях.

Читайте также:  Python get lib version

os.path¶

os.path является вложенным модулем в модуль os , и реализует некоторые полезные функции для работы с путями.

os.path.abspath(path) возвращает нормализованный абсолютный путь. os.path.basename(path) базовое имя пути (эквивалентно os.path.split(path)[1] ). os.path.commonprefix(list) возвращает самый длинный префикс всех путей в списке. os.path.dirname(path) возвращает имя директории пути path . os.path.exists(path) возвращает True , если path указывает на существующий путь или дескриптор открытого файла. os.path.expanduser(path) заменяет ~ или ~user на домашнюю директорию пользователя. os.path.expandvars(path) возвращает аргумент с подставленными переменными окружения ( $name или $ заменяются переменной окружения name ). Несуществующие имена не заменяет. На Windows также заменяет %name% . os.path.getatime(path) время последнего доступа к файлу, в секундах. os.path.getmtime(path) время последнего изменения файла, в секундах. os.path.getctime(path) время создания файла (Windows), время последнего изменения файла (Unix). os.path.getsize(path) размер файла в байтах. os.path.isabs(path) является ли путь абсолютным. os.path.isfile(path) является ли путь файлом. os.path.isdir(path) является ли путь директорией. os.path.islink(path) является ли путь символической ссылкой. os.path.ismount(path) является ли путь точкой монтирования. os.path.join(path1[, path2[, . ]]) соединяет пути с учётом особенностей операционной системы. os.path.normcase(path) нормализует регистр пути (на файловых системах, не учитывающих регистр, приводит путь к нижнему регистру). os.path.normpath(path) нормализует путь, убирая избыточные разделители и ссылки на предыдущие директории. На Windows преобразует прямые слеши в обратные. os.path.realpath(path) возвращает канонический путь, убирая все символические ссылки (если они поддерживаются). os.path.relpath(path, start=None) вычисляет путь относительно директории start (по умолчанию — относительно текущей директории). os.path.samefile(path1, path2) указывают ли path1 и path2 на один и тот же файл или директорию. os.path.sameopenfile(fp1, fp2) указывают ли дескрипторы fp1 и fp2 на один и тот же открытый файл. os.path.split(path) разбивает путь на кортеж (голова, хвост), где хвост — последний компонент пути, а голова — всё остальное. Хвост никогда не начинается со слеша (если путь заканчивается слешем, то хвост пустой). Если слешей в пути нет, то пустой будет голова. os.path.splitdrive(path) разбивает путь на пару (привод, хвост). os.path.splitext(path) разбивает путь на пару ( root , ext ), где ext начинается с точки и содержит не более одной точки. os.path.supports_unicode_filenames поддерживает ли файловая система Unicode.

Читайте также:  Сортировка подсчетом питон код

Источник

Получение даты создания и изменения файла в Python

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

В Python есть несколько способов получить эту информацию, причем большинство из них являются кросс-платформенными и будут работать как на Linux, так и на Windows.

Самый простой и распространенный способ — использование встроенного модуля os . Этот модуль содержит функцию os.path.getmtime() , которая возвращает время последнего изменения файла в виде числа с плавающей точкой, представляющего секунды с начала эпохи (обычно это 01.01.1970 г.).

import os filename = "test.txt" mtime = os.path.getmtime(filename) print(mtime)

Этот код вернет время последнего изменения файла «test.txt». Чтобы преобразовать это время из секунд с начала эпохи в более читаемый формат, можно использовать функцию datetime.fromtimestamp() :

import os from datetime import datetime filename = "test.txt" mtime = os.path.getmtime(filename) mtime_readable = datetime.fromtimestamp(mtime) print(mtime_readable)

Получение времени создания файла немного сложнее и отличается в зависимости от операционной системы. На Windows можно использовать функцию os.path.getctime() , которая работает аналогично os.path.getmtime() , но возвращает время создания файла. На Linux, к сожалению, такой функции нет, поэтому придется использовать функцию os.stat() , которая возвращает объект с метаданными файла, включая время его создания.

import os from datetime import datetime filename = "test.txt" stat = os.stat(filename) ctime = stat.st_ctime ctime_readable = datetime.fromtimestamp(ctime) print(ctime_readable)

Таким образом, получение информации о времени создания и изменения файла в Python — это относительно простая задача, которая может быть выполнена с помощью встроенного модуля os .

Источник

Оцените статью