Например,
import os
print os.listdir()
список файлов в каталоге.
Как получить время изменения файла для всех файлов в каталоге?
Например,
import os
print os.listdir()
список файлов в каталоге.
Как получить время изменения файла для всех файлов в каталоге?
При поиске атрибутов файлов для всех файлов в каталоге и использовании Python 3.5 или новее используйте функцию os.scandir(), чтобы получить список каталогов с объединенными атрибутами файлов. Это потенциально может быть более эффективным, чем использование os.listdir(), а затем извлечение атрибутов файла отдельно:
import os
with os.scandir() as dir_entries:
for entry in dir_entries:
info = entry.stat()
print(info.st_mtime)
Функция DirEntry.stat(), когда она используется в Windows, не требует дополнительных системных вызовов, время изменения файла уже доступно. Данные кэшируются, поэтому дополнительные вызовы entry.stat() не будут выполнять дополнительные системные вызовы.
Вы также можете использовать pathlib модуль Объектно-ориентированные экземпляры, чтобы добиться того же:
from pathlib import Path
for path in Path('.').iterdir():
info = path.stat()
print(info.st_mtime)
В более ранних версиях Python вы можете использовать вызов os.stat для получения таких свойств файла, как время модификации.
import os
for filename in os.listdir():
info = os.stat(filename)
print(info.st_mtime)
st_mtime - это значение с плавающей запятой на Python 2.5 и выше, представляющее секунды с начала эпохи; используйте модули time или datetime, чтобы интерпретировать их для демонстрации или для других целей.
Обратите внимание, что точность значения зависит от используемой ОС:
Точное значение и разрешение атрибутов st_atime, st_mtime и st_ctime зависят от операционной системы и файловой системы. Например, в системах Windows, использующих файловые системы FAT или FAT32, st_mtime имеет разрешение 2 секунды, а st_atime - разрешение только на 1 день. Подробности смотрите в документации по вашей операционной системе.
Если все, что вы делаете, это получаете время модификации, то метод os.path.getmtime является удобным сочетанием клавиш; он использует метод os.stat под капотом.
Тем не менее, обратите внимание, что вызов os.stat является относительно дорогим (доступ к файловой системе), поэтому, если вы делаете это для большого количества файлов и вам требуется более одного назначения данных на файл, вам лучше использовать os.stat и повторно использовать Возвращается информация, а не используются удобные методы os.path, где os.stat будет вызываться несколько раз для каждого файла.
Если вы хотите только модифицированное время, то os.path.getmtime(filename) получит его для вас. Если вы используете listdir с аргументом, вам также нужно будет использовать os.path.join:
import os, os.path
for filename in os.listdir(SOME_DIR):
print os.path.getmtime(os.path.join(SOME_DIR, filename))