使用Python實現(xiàn)照片按照日期自動分類的操作指南

各位小伙伴們,別看這些張張圖片,它們也是有生日的哦!而今天,我們就要教你一招,讓Python幫助圖片自動按照日期分類,讓這些鏡頭下的瞬間肆意自由,分門別類、慢慢成長!
準(zhǔn)備工作
首先,需要攜帶一顆善良而充滿創(chuàng)意的心,以及一顆熱愛技術(shù)的腦袋。另外,Python的os模塊、PIL庫(Python Imaging Library)、以及exifread庫也會是我們這次冒險的得力工具!
沒有安裝PIL和exifread庫的,記得先安裝一下哦:
pip install exifread pip install Pillow
代碼實現(xiàn)
from PIL import Image
import os
import exifread
from datetime import datetime
def get_image_date_taken(image_path):
with open(image_path, 'rb') as image_file:
tags = exifread.process_file(image_file)
date_taken = tags.get('EXIF DateTimeOriginal')
if date_taken:
return datetime.strptime(str(date_taken), '%Y:%m:%d %H:%M:%S')
else:
return None
def classify_images_by_date(input_folder, output_folder):
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
input_path = os.path.join(input_folder, filename)
if os.path.isfile(input_path):
date_taken = get_image_date_taken(input_path)
if date_taken:
date_folder = date_taken.strftime('%Y-%m-%d')
date_folder_path = os.path.join(output_folder, date_folder)
os.makedirs(date_folder_path, exist_ok=True)
output_path = os.path.join(date_folder_path, filename)
os.replace(input_path, output_path)
# 測試
classify_images_by_date(
'C:/Users/olive/Desktop/待分類的圖片',
'C:/Users/olive/Desktop/分類后的圖片')代碼解析
這段代碼不僅涉及到PIL庫的應(yīng)用、文件處理,更使用了exifread庫來獲取圖片的拍攝日期信息。Python就好像是一位時間旅行者,為圖片鐫刻上屬于它們自己的生日!
現(xiàn)在讓我來詳細(xì)解析一下:
1.首先,定義了一個名為get_image_date_taken的函數(shù),用于獲取圖片的拍攝日期。它通過讀取圖片的exif信息(EXIF是存儲在數(shù)碼照片文件中的附加信息,包括拍攝日期等),獲取圖片的拍攝日期,并返回一個datetime對象。
2.然后,定義了一個名為classify_images_by_date的函數(shù),用于分類圖片并保存到對應(yīng)日期的文件夾中。該函數(shù)接收兩個參數(shù):input_folder表示輸入圖片存放的文件夾路徑,output_folder表示分類后圖片保存的文件夾路徑。
3.在classify_images_by_date函數(shù)中,首先使用os.makedirs(output_folder,exist_ok=True)創(chuàng)建輸出文件夾,如果文件夾已存在則不會報錯。
4.然后,遍歷輸入文件夾中的每張圖片。對于每張圖片,獲取圖片的完整路徑input_path,并進(jìn)行判斷是否為文件。
5.如果是文件,則調(diào)用get_image_date_taken函數(shù)獲取圖片的拍攝日期date_taken。如果成功獲取到日期,就根據(jù)日期創(chuàng)建對應(yīng)的文件夾,并將圖片移動到該文件夾中。
6.最后,利用os.replace方法將圖片從原路徑移動到新的分類路徑,并完成分類操作。
激動人心的測試
跟著小編的腳步,將你的圖片帶入時間的長河吧!只需要將輸入文件夾路徑和輸出文件夾路徑傳入classify_images_by_date函數(shù),Python就能為你將圖片按照日期自動分類,慢慢成長。
接下來,我們要開始測試代碼了,首先,我們準(zhǔn)備一些圖片,放在一個文件夾下:

我們會發(fā)現(xiàn),前面3張不是我們自己拍的照片(濫竽充數(shù)的,看看能不能蒙混過關(guān)??),后面的照片,文件名也是有點亂,甚至有些都看不出是什么時候拍的。
這里再多啰嗦兩句,我們深究一下圖片的日期究竟是被記錄在了哪里:
我們隨便選擇一張照片,對它右擊,選擇屬性,就跳出了如下所示的一個彈框。然后,我們點詳細(xì)信息這個選項卡,然后在屬性中,找到來源下的拍攝日期,它的值,就是我們實際拍攝照片的時間。

我們再看一下,不是我們自己拍攝的照片,有沒有日期呢:

我們看到,這張圖片的拍攝日期是空白的。
好了,接下來要執(zhí)行我們的代碼了,激動人心的時刻終于來了。
首先,還是要改一下測試的那行代碼,再上面的代碼中的最后一行:
# 測試
classify_images_by_date(
'C:/Users/olive/Desktop/待分類的圖片',
'C:/Users/olive/Desktop/分類后的圖片')注意,兩個文件夾的路徑要改成你自己的哦!
好了,接下來就運行一下吧。
很快,幾乎沒有等待,瞬間完成!
我們看到,此時在我們的桌面上就多了一個【分類后的圖片】的文件夾:

非常棒,果然出現(xiàn)了按日期歸類的文件夾,我們點開看一下,照片是不是歸類進(jìn)來了:

ok,歸類成功!
最后,我們再看下【待分類的圖片】的那個文件夾:

果然,不是我們拍的照片,呆在原地了,在我們機智的Python面前,所有的妖精無處遁形,哈哈!
結(jié)語
這篇文章讓我們一起見證了圖片的成長,讓這些瞬間在時間的長河里慢慢自由生長、分門別類。希望這個教程能為你的圖片分類之旅增添一絲樂趣和意義!
在未來的某一天,你回過頭來,會發(fā)現(xiàn)這些個個鏡頭下的瞬間,其實也在悄悄地留下了生日。
到此這篇關(guān)于使用Python實現(xiàn)照片按照日期自動分類的操作指南的文章就介紹到這了,更多相關(guān)Python照片按日期自動分類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何用Python進(jìn)行回歸分析與相關(guān)分析
這篇文章主要介紹了如何用Python進(jìn)行回歸分析與相關(guān)分析,這兩部分內(nèi)容會放在一起講解,文中提供了解決思路以及部分實現(xiàn)代碼,需要的朋友可以參考下2023-03-03
pytorch查看通道數(shù) 維數(shù) 尺寸大小方式
這篇文章主要介紹了pytorch查看通道數(shù) 維數(shù) 尺寸大小方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
基于Pytorch的神經(jīng)網(wǎng)絡(luò)之Regression的實現(xiàn)
本文主要介紹了基于Pytorch的神經(jīng)網(wǎng)絡(luò)之Regression的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03

