Помогает обернуть встроенную директорию в функцию, которая дает только полные пути к файлам. Затем вы можете просто взять функцию, которая возвращает все файлы, и выбрать ту, которая имеет наибольшее время изменения:
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)