Нахождение последний раз отредактированного файла в Python

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

Расположение папки:

root
    Folder A
        File A
        File B
    Folder B
        File C
        File D
etc...

Любые подсказки для запущения меня, поскольку я врезался во что-то вроде стены.

8
задан SilentGhost 28 April 2010 в 16:02
поделиться

5 ответов

  • используйте os.walk для вывода списка файлов
  • используйте os.stat , чтобы получить временную метку измененного файла ( st_mtime)
  • помещает метки времени и имена файлов в список и отсортирует его по метке времени, самая большая метка времени - это файл, который редактировался последним.
3
ответ дан 5 December 2019 в 05:25
поделиться

Вы можете использовать

os.walk

См .: http://docs.python.org/library/os.html

1
ответ дан 5 December 2019 в 05:25
поделиться

Помогает обернуть встроенный каталог, идущий в функция, которая возвращает только полные пути к файлам. Затем вы можете просто взять функцию, которая возвращает все файлы, и выбрать тот, который имеет наибольшее время модификации:

import os

def all_files_under(path):
    """Iterates through all files that are under the given path."""
    for cur_path, dirnames, filenames in os.walk(path):
        for filename in filenames:
            yield os.path.join(cur_path, filename)

latest_file = max(all_files_under('root'), key=os.path.getmtime)
6
ответ дан 5 December 2019 в 05:25
поделиться

Вам следует посмотреть на функцию os.walk , а также на os.stat , которая позволяет вы делаете что-то вроде:

import os

max_mtime = 0
for dirname,subdirs,files in os.walk("."):
    for fname in files:
        full_path = os.path.join(dirname, fname)
        mtime = os.stat(full_path).st_mtime
        if mtime > max_mtime:
            max_mtime = mtime
            max_dir = dirname
            max_file = fname

print max_dir, max_file
18
ответ дан 5 December 2019 в 05:25
поделиться

Используйте os.path.walk () для просмотра дерева каталогов и os.stat (). St_mtime , чтобы получить время файлов.

Функция, которую вы передаете в os.path.walk () (параметр visit ), просто должна отслеживать наибольшее mtime, которое он видел, и где он его видел.

1
ответ дан 5 December 2019 в 05:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: