以下是修改后的代码,其中包括了打印子目录的最晚更新时间:
# -*- 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()
这个版本的代码在原有功能的基础上,增加了获取子目录最晚更新时间的功能。具体实现步骤如下:
- 在
find_svn_directories
函数中调用get_latest_modification_time
函数,获取每个包含.svn
文件的目录的最晚更新时间。 -
get_latest_modification_time
函数遍历目录下的所有文件,获取它们的修改时间,并返回最晚的时间。 - 在
main
函数中打印每个目录及其最晚更新时间。