背景需求:
用华为手机助手导出的照片视频,只能将jpg照片(exifread读取图片的exif拍摄日期,Png、JPEG、mp4都无法识别到exif信息)
【办公类-04-02】华为助手导出照片(jpg)读取拍摄时间分类导出,JPEG、png、MP4不行)-CSDN博客文章浏览阅读750次,点赞10次,收藏10次。【办公类-04-02】华为助手导出照片(jpg)读取拍摄时间分类导出,JPEG、png、MP4不行)https://blog.csdn.net/reasonsummer/article/details/139450591
实现需求
所以我想直接根据图片、视频的文件名中的日期,将照片分类的同名文件夹内
素材准备:
原始照片(文件名中‘_’分割的第1组就是日期)
运行代码后会生成一个空的照片整理2
代码展示:
'''
华为手机助手导出的照片,根据照片、视频的文件名中的日期,进行转移
IMG_20240428_085357.jpg
VID_20240603_131241.mp4
作者:星火讯飞,阿夏
时间:2024年6月16日
'''
import os
import re
from datetime import datetime
folder_path = r'D:\03照片导出'
new_folder = r'D:\04照片整理2'
os.makedirs(new_folder,exist_ok=True)
file_names = os.listdir(folder_path)
result_list = []
for file_name in file_names:
split_name = re.split("_", file_name)
if len(split_name[1])==8: # 如果第一组的字符长度=8,保留,,
# result_list.append(split_name[1])
date_obj = datetime.strptime(split_name[1], "%Y%m%d")
new_folder_name = date_obj.strftime("%Y-%m-%d")
print(new_folder_name)
# 在照片整理文件里新建日期文件夹
new_folder_path = os.path.join(new_folder, new_folder_name)
os.makedirs(new_folder_path,exist_ok=True)
# 转移照片或视频
os.rename(os.path.join(folder_path, file_name), os.path.join(new_folder_path, file_name))
else: # 如果第一组的字符长度=3 img,放弃
pass
结果展示
源文件中jpg和MP4已经没有了,还剩一些png和JPEG文件
把HZT的图片(包含日期)也转移
'''
华为手机助手导出的照片,根据照片、视频的文件名中的日期,进行转移
IMG_20240428_085357.jpg
VID_20240603_131241.mp4
作者:星火讯飞,阿夏
时间:2024年6月16日
'''
import os
import re
from datetime import datetime
folder_path = r'D:\03照片导出'
new_folder = r'D:\04照片整理2'
os.makedirs(new_folder,exist_ok=True)
file_names = os.listdir(folder_path)
for file_name in file_names:
split_name = re.split("_", file_name)
if len(split_name[1])==8: # 如果第一组的字符长度=8,保留,,
# result_list.append(split_name[1])
date_obj = datetime.strptime(split_name[1], "%Y%m%d")
new_folder_name = date_obj.strftime("%Y-%m-%d")
print(new_folder_name)
# 在照片整理文件里新建日期文件夹
new_folder_path = os.path.join(new_folder, new_folder_name)
os.makedirs(new_folder_path,exist_ok=True)
# 转移照片或视频
os.rename(os.path.join(folder_path, file_name), os.path.join(new_folder_path, file_name))
if len(split_name[1])==3: # # HZT_IMG_2024051716133950 格式的
date_obj = datetime.strptime(split_name[2][:8], "%Y%m%d")
new_folder_name = date_obj.strftime("%Y-%m-%d")
print(new_folder_name)
# 在照片整理文件里新建日期文件夹
new_folder_path = os.path.join(new_folder, new_folder_name)
os.makedirs(new_folder_path,exist_ok=True)
# 转移照片或视频
os.rename(os.path.join(folder_path, file_name), os.path.join(new_folder_path, file_name))
else: # 如果第一组的字符长度=3 img,放弃
pass