我有一个类似的文件夹结构,我需要从每个子目录中提取最新的.jpg:
+ C:\\myfiles
+ parentdir1
+ subdir1
+ somename1.jpg
+ somename2.jpg
+ ...
+ subdir2
+ somename3.jpg
+ somename4.jpg
+ ...
+ ...
+ parentdir2
+ subdir1
+ somename5.jpg
+ somename6.jpg
+ ...
+ subdir2
+ somename7.jpg
+ somename8.jpg
+ ...
+ ...
+ parentdir3
+ subdir1
+ somename9.jpg
+ somename10.jpg
+ ...
+ subdir2
+ somename11.jpg
+ somename12.jpg
+ ...
+ ...
+ ...
我不知道任何文件夹或文件的名称,但我需要访问每个子目录中的最后2.jpg文件。你知道吗
为了简单起见,我们假设需要打印在子目录中创建的最后两个文件。你知道吗
我编写了一个脚本,可以搜索给定parentdir中的所有subdir,但实际上我也需要遍历所有parentdir
import os
path = 'C:\\myfiles'
filelist = []
for i in range(len(os.listdir(path))):
subpath = path + '\\' + os.listdir(path)[i]
for root, dirs, files in os.walk(subpath):
for file in os.listdir(subpath):
filelist.append(os.path.join(root, file))
sorted_filelist = sorted(filelist, key=os.path.getctime)
print('the latest jpg file in ' + root + ' is: ' + sorted_filelist[-1])
print('the 2nd last jpg file in ' + root + ' is: ' + sorted_filelist[-2])
filelist.clear()
我想这会满足你的要求。请注意,我按文件的上次修改时间而不是创建时间对文件进行排序,因为我认为这是确定哪些文件是“最近的”。你知道吗
尝试遍历父目录,然后遍历所有子目录,使用操作系统列表目录(). 你知道吗
相关问题 更多 >
编程相关推荐