以下是一个示例代码,它按照ID对文件名进行排序,并按日期/时间分组排序:
import os
from datetime import datetime
def sort_files_by_id_and_date(directory):
files = os.listdir(directory)
files_with_id = []
for file in files:
file_path = os.path.join(directory, file)
if os.path.isfile(file_path):
file_id = int(file.split('_')[0])
file_datetime = datetime.fromtimestamp(os.path.getmtime(file_path))
files_with_id.append((file_id, file_datetime, file))
sorted_files = sorted(files_with_id, key=lambda x: (x[0], x[1]))
grouped_files = {}
for file in sorted_files:
file_id = file[0]
if file_id not in grouped_files:
grouped_files[file_id] = []
grouped_files[file_id].append(file[2])
return grouped_files
# 使用示例
directory = 'path/to/directory'
grouped_files = sort_files_by_id_and_date(directory)
for file_id, files in grouped_files.items():
print(f'Group {file_id}:')
for file in files:
print(file)
这个示例代码中,首先获取指定目录下的所有文件。然后,对于每个文件,提取文件名中的ID和文件的修改日期/时间信息,并将它们存储在一个列表中。
接下来,使用Python的sorted
函数对这个列表进行排序,首先按照ID进行排序,然后按照日期/时间进行排序。
最后,将排序后的文件列表按照ID分组,创建一个字典,其中键是ID,值是该ID下的所有文件名。
最后,你可以根据需要使用分组后的文件列表进行后续操作。在这个示例中,我们只是打印了每个分组中的文件名。你可以根据自己的需求进行适当的修改。
下一篇:按ID匹配的压缩集合