最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)自動(dòng)為照片添加日期并分類的方法

 更新時(shí)間:2017年09月30日 14:44:59   作者:nxlhero  
這篇文章主要介紹了Python實(shí)現(xiàn)自動(dòng)為照片添加日期并分類的方法,涉及Python針對(duì)文件與目錄的遍歷、判斷、修改、復(fù)制及文件屬性的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)自動(dòng)為照片添加日期并分類的方法。分享給大家供大家參考,具體如下:

小時(shí)候沒怎么照相,所以跟別人說小時(shí)候特別帥他們都不信。小外甥女出生了,我給買了個(gè)照相機(jī),讓她多照相??上四壳斑€是個(gè)屌絲,買了個(gè)700的屌絲照相機(jī),竟然沒有自動(dòng)加日期的功能。試了幾個(gè)小軟件,都不好用,大的圖像軟件咱又不會(huì)用。身為一個(gè)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生,只能自立更生了。

聽說Python有個(gè)圖形庫,不錯(cuò),在照片上打日期很容易,于是我就下了這個(gè)庫。對(duì)Python不熟,一面看著手冊一面寫的。完成了下面的小程序,很簡單。還不實(shí)用,我再修改一下,加上圖形界面,并且將Python代碼轉(zhuǎn)換成exe,因?yàn)槲乙殉绦蚪o我姐用,所以要做到最傻瓜式。

(1)在相片右下角打印日期,格式類似于 2012-12-05 10:23:46

(2)以上面的日期為例,將原文件重命名為20121205102346.jpg,生成的文件命名為20121205102346DATE.jpg,并且放入文件夾20121205中,這樣就可以把相片自動(dòng)分類了。兩個(gè)相片拍攝時(shí)間到秒數(shù)就應(yīng)該不同了,除非是連拍。

代碼(事先安裝PIL庫,http://www.pythonware.com/products/pil/)

import os,sys,shutil
from PIL import Image
from PIL import ImageDraw
from PIL.ExifTags import TAGS
from PIL import ImageFont
#open image file
if len(sys.argv) < 2:
    print "Usage: ",sys.argv[0]," ImageFile"
    sys.exit(1)
im = Image.open(sys.argv[1])
print 'Image size is:',im.size
#get the info dict
info = im._getexif()
#info store the information of the image
#it stores the info like this: [233:'name',2099:'2012:01:01 10:44:55',...]
#the key need to be decoded,
#This piece of code will extract the time when the photo is taken
for tag,value in info.items():
    decoded = TAGS.get(tag,tag)
    if decoded == 'DateTime':
        date = value
        break
#The date time is in this format '2012:01:01 10:44:22', replace the first two ":" with "-", need a writable list
date_list = []
for x in range(0,len(date)):
    date_list.append(date[x])
date_list[4] = '-'
date_list[7] = '-'
date = ''.join(date_list) #draw.text expect a string, convert it back to string
#the font size will be 1/15 of the images size
font = ImageFont.truetype("FZYTK.TTF",im.size[1] / 15)
draw = ImageDraw.Draw(im)
stringsize=draw.textsize(date,font=font)
print 'Text size is:',stringsize
#put the text to the right corner
draw.text((im.size[0]-stringsize[0],im.size[1]-stringsize[1]),date,fill=255,font=font)
#rename the source photo and the dated photo, eliminate the ':' and '-' and ' '
new_date_list = []
for x in range(0,len(date_list)):
    if date_list[x] != ':' and date_list[x] != '-' and date_list[x] != ' ':
        new_date_list.append(date_list[x])
date = ''.join(new_date_list[0:8])
time = ''.join(new_date_list[8:])
#print date
#print time
dir_name = ''.join(date)
src_filename = ''.join(new_date_list)
dst_filename = src_filename + 'DATE'
#print dir_name
#print src_filename
#print dst_filename
if not os.path.isdir(dir_name):
    os.makedirs(dir_name)
path = dir_name + '/' + dst_filename +'.JPG'
#print path
im.save(path)
shutil.copy(sys.argv[1],dir_name+'/'+src_filename+'.JPG')

效果圖如下:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python圖片操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 10個(gè)python爬蟲入門實(shí)例(小結(jié))

    10個(gè)python爬蟲入門實(shí)例(小結(jié))

    這篇文章主要介紹了10個(gè)python爬蟲入門實(shí)例(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python利用pymysql和openpyxl實(shí)現(xiàn)操作MySQL數(shù)據(jù)庫并插入數(shù)據(jù)

    python利用pymysql和openpyxl實(shí)現(xiàn)操作MySQL數(shù)據(jù)庫并插入數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了如何使用Python連接MySQL數(shù)據(jù)庫,并從Excel文件中讀取數(shù)據(jù),將其插入到MySQL數(shù)據(jù)庫中,有需要的小伙伴可以參考一下
    2023-10-10
  • 詳解用Python爬蟲獲取百度企業(yè)信用中企業(yè)基本信息

    詳解用Python爬蟲獲取百度企業(yè)信用中企業(yè)基本信息

    這篇文章主要介紹了詳解用Python爬蟲獲取百度企業(yè)信用中企業(yè)基本信息,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 解決python虛擬環(huán)境切換無效的問題

    解決python虛擬環(huán)境切換無效的問題

    這篇文章主要介紹了解決python虛擬環(huán)境切換無效的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 基于python+selenium的二次封裝的實(shí)現(xiàn)

    基于python+selenium的二次封裝的實(shí)現(xiàn)

    這篇文章主要介紹了基于python+selenium的二次封裝的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Python實(shí)現(xiàn)計(jì)算最小編輯距離

    Python實(shí)現(xiàn)計(jì)算最小編輯距離

    這篇文章主要介紹了Python實(shí)現(xiàn)計(jì)算最小編輯距離的相關(guān)代碼,有需要的小伙伴可以參考下
    2016-03-03
  • 解決python和pycharm安裝gmpy2 出現(xiàn)ERROR的問題

    解決python和pycharm安裝gmpy2 出現(xiàn)ERROR的問題

    這篇文章主要介紹了python和pycharm安裝gmpy2 出現(xiàn)ERROR的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • conda創(chuàng)建環(huán)境過程出現(xiàn)"Solving?environment:?failed"報(bào)錯(cuò)的詳細(xì)解決方法

    conda創(chuàng)建環(huán)境過程出現(xiàn)"Solving?environment:?failed"報(bào)錯(cuò)的詳細(xì)解

    很長一段時(shí)間沒用conda了,然后突然使用conda創(chuàng)建環(huán)境報(bào)錯(cuò),所以下面這篇文章主要給大家介紹了關(guān)于conda創(chuàng)建環(huán)境過程出現(xiàn)"Solving?environment:?failed"報(bào)錯(cuò)的詳細(xì)解決方法,需要的朋友可以參考下
    2022-11-11
  • Python實(shí)現(xiàn)全自動(dòng)輸入文本的示例詳解

    Python實(shí)現(xiàn)全自動(dòng)輸入文本的示例詳解

    這篇文章主要和大家分享一個(gè)Python全自動(dòng)輸入文本的腳本,可以實(shí)現(xiàn)自動(dòng)用Notepad++打開文本文件,然后自動(dòng)輸入文本,最后保存并關(guān)閉文件,從而實(shí)現(xiàn)全面自動(dòng)化處理文本,希望對(duì)大家有所幫助
    2022-11-11
  • 基于python檢查矩陣計(jì)算結(jié)果

    基于python檢查矩陣計(jì)算結(jié)果

    這篇文章主要介紹了基于python檢查矩陣計(jì)算結(jié)果,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05

最新評(píng)論

剑河县| 英吉沙县| 镇江市| 临潭县| 板桥市| 甘孜| 濉溪县| 天柱县| 阳城县| 洪湖市| 新民市| 青阳县| 安塞县| 扎兰屯市| 沁阳市| 南溪县| 旺苍县| 孝感市| 青海省| 马边| 灵石县| 三明市| 本溪| 南召县| 舞阳县| 瓦房店市| 乌拉特后旗| 南陵县| 左权县| 拜城县| 寿光市| 江陵县| 乌拉特后旗| 博爱县| 历史| 内乡县| 教育| 封丘县| 宝鸡市| 贵南县| 玉田县|