能否编写一个Python脚本,该脚本能够按照照片文件名中'[标识码]_[日期]-时间.jpg'的格式,依据拍摄日期自动将照片分类到不同的子文件夹中,以便于档案管理系统?
时间: 2024-10-26 07:02:22 浏览: 13
Python库 | csr_azure_scripts-0.0.13.tar.gz
当然可以,下面是一个简单的Python脚本,利用`os` 和 `datetime` 库来实现这个功能:
```python
import os
import shutil
import re
# 指定源文件夹和目标子文件夹结构
source_folder = '原始照片文件夹'
output_format = '%Y_%m' # 例如按年月分组,你可以根据需要调整
# 正则表达式匹配文件名中的标识码和日期
pattern = r'\[.*?\]\[(.*?)\]\s*(\d+-\d+)-\d+:\d+:\d+\.\w+$'
match_func = re.compile(pattern).match
# 创建目标子文件夹
for year_month in range(2000, 2050): # 这里设置了一个范围,你可以根据实际年份调整
target_folder = f'{year_month}_{source_folder}'
if not os.path.exists(target_folder):
os.makedirs(target_folder)
# 遍历源文件夹内的照片文件
for file_name in os.listdir(source_folder):
match = match_func(file_name)
if match:
identifier = match.group(1)
date_str = match.group(2)
# 将日期转换成 YYYY-MM 格式
date = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S').strftime(output_format)
# 确定目标子文件夹路径
target_folder = f'{target_folder}/{date}'
# 移动文件到相应的子文件夹
shutil.move(os.path.join(source_folder, file_name), target_folder)
print(f'文件 "{file_name}" 已经移动到 {target_folder}.')
# 提供一些常见问题的解答
阅读全文