在python中查找最近编辑过的文件

时间:2010-04-28 15:44:56

标签: python file path directory

我有一组文件夹,我希望能够运行一个能够找到最近编辑过的文件的函数,并告诉我文件的名称及其所在的文件夹。

文件夹布局:

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

任何提示让我开始,因为我已经打了一个墙。

8 个答案:

答案 0 :(得分:16)

您应该查看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

答案 1 :(得分:6)

它有助于将内置目录walk to包装为仅生成文件的完整路径的函数。然后,您可以使用返回所有文件的函数,并选择具有最高修改时间的函数:

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)

答案 2 :(得分:3)

  • 使用os.walk列出文件
  • 使用os.stat获取文件修改时间戳(st_mtime)
  • 将时间戳和文件名放在列表中并按时间戳排序,最大时间戳是最近编辑的文件。

答案 3 :(得分:1)

您可以使用

os.walk

请参阅:http://docs.python.org/library/os.html

答案 4 :(得分:1)

使用os.path.walk()遍历目录树和os.stat().st_mtime以获取文件的mtime。

您传递给os.path.walk()的函数(visit参数)只需要跟踪它看到的最大mtime以及它看到的位置。

答案 5 :(得分:0)

我正在使用path = r"C:\Users\traveler\Desktop"

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 :(得分:0)

如果有人正在寻找一种单行方式:

latest_edited_file = max([f for f in os.scandir("path\\to\\search")], key=lambda x: x.stat().st_mtime).name

答案 7 :(得分:0)

对于多个文件,如果有人为此而来:

import glob, os

files = glob.glob("/target/directory/path/*/*.mp4")
files.sort(key=os.path.getmtime)

for file in files:
   print(file)

这将打印 /path/ 内任何文件夹中具有 .mp4 扩展名的所有文件,最近修改的文件路径在底部。