以下是修改后的代码,其中包括了打印子目录的最晚更新时间:

# -*- coding: utf-8 -*-
import os
import datetime

def find_svn_directories(directory):
    """遍历目录,查找包含 .svn 文件的目录并打印其名称及最晚更新时间"""
    svn_directories = []
    for root, dirs, files in os.walk(directory):
        if '.svn' in dirs:
            latest_time = get_latest_modification_time(root)
            svn_directories.append((root, latest_time))
    return svn_directories

def get_latest_modification_time(directory):
    """获取目录下所有文件的最晚修改时间"""
    latest_time = datetime.datetime.fromtimestamp(0)
    for root, dirs, files in os.walk(directory):
        for name in files:
            file_path = os.path.join(root, name)
            file_time = datetime.datetime.fromtimestamp(os.path.getmtime(file_path))
            if file_time > latest_time:
                latest_time = file_time
    return latest_time

def main():
    directory_path = '/data/svn/'
    svn_directories = find_svn_directories(directory_path)
    for dir_name, mod_time in svn_directories:
        print(f"{dir_name} - Last Modified: {mod_time}")

if __name__ == '__main__':
    main()

这个版本的代码在原有功能的基础上,增加了获取子目录最晚更新时间的功能。具体实现步骤如下:

  1. find_svn_directories 函数中调用 get_latest_modification_time 函数,获取每个包含 .svn 文件的目录的最晚更新时间。
  2. get_latest_modification_time 函数遍历目录下的所有文件,获取它们的修改时间,并返回最晚的时间。
  3. main 函数中打印每个目录及其最晚更新时间。