在Python中查找最近编辑的文件
我有一组文件夹,我想运行一个功能,能够找到最近被编辑过的文件,并告诉我这个文件的名字和它所在的文件夹。
文件夹结构:
root
Folder A
File A
File B
Folder B
File C
File D
etc...
有没有什么建议可以帮助我入门,因为我遇到了一些困难。
8 个回答
8
如果有人想要一个一行代码就能解决的方法:
latest_edited_file = max([f for f in os.scandir("path\\to\\search")], key=lambda x: x.stat().st_mtime).name
11
把内置的目录遍历功能封装成一个函数,这个函数只返回文件的完整路径,这样会更方便。接着,你可以使用一个返回所有文件的函数,然后从中挑选出修改时间最新的那个文件。
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)
21
你可以看看 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