Mac下JPEG照片的时间日期纠正
生活随笔
收集整理的這篇文章主要介紹了
Mac下JPEG照片的时间日期纠正
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
之前把照片保存在百度網(wǎng)盤(pán)上了,重新下載之后照片的創(chuàng)建時(shí)間變成了下載時(shí)間。但是EXIF中的創(chuàng)建時(shí)間是正確的??墒茿pple的照片程序竟然顯示的是照片的文件創(chuàng)建時(shí)間而不是EXIF中的時(shí)間,開(kāi)始以為這是一個(gè)Bug,后來(lái)明白了,應(yīng)該是Apple的用戶的隱私策略限制,不能讀取用戶的文件(至少看起來(lái)是這樣的)。而百度網(wǎng)盤(pán)似乎就不太在乎這些,在百度網(wǎng)盤(pán)上的文件是會(huì)自動(dòng)按EXIF文件中的時(shí)間整理的。
為此,寫(xiě)了一個(gè)python腳本,讀取JPEG的EXIF中的原始創(chuàng)建時(shí)間,改寫(xiě)文件的創(chuàng)建時(shí)間和文件名。
from PIL import Image import exifread import osdef renameFile(fileName, newName):if fileName == newName:returntot = 1while os.path.exists(newName):newName = os.path.split(fileName)[0] + "_" + str(tot) + os.path.split(fileName)[1]tot += 1os.rename(fileName, newName)def editFileCtime(filePath, timeStr):print("====editFileCtime")ctime = timeStr.replace(':', '').replace(' ', '')ctime = ctime[:-2] + "." + ctime[-2:]os.system("touch -t " + ctime + " " + filePath)def getCreateTime(filename):print("====getCreateTime")FIELD = 'EXIF DateTimeOriginal'fd = open(filename, 'rb')tags = exifread.process_file(fd)fd.close()print("fileName:", filename)if FIELD in tags:print(tags[FIELD])return tags[FIELD]else:print('No {} found'.format(FIELD))return Noneif __name__ == "__main__":for filename in os.listdir('.'):if os.path.isfile(filename):createTime = getCreateTime(filename)if createTime:editFileCtime(filename, str(createTime))new_name = str(createTime).replace(':', '').replace(' ', '_') + os.path.splitext(filename)[1]renameFile(filename, new_name)總結(jié)
以上是生活随笔為你收集整理的Mac下JPEG照片的时间日期纠正的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【自动化运维】从0到1 CICD自动化部
- 下一篇: BT控制面板cpu,内存使用率时常达到1