Например,
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))