首先就是我為什么要寫這個小工具。因為照片實在是太多了,當時手機拍下來了,就拷貝到一個文件夾,久而久之,文件夾里面已經有2000+個文件了,于是決定用python來吧照片按年分類(其實有很多辦法,根本不用這么麻煩,但是這里也是熟悉一下python的文件操作)。
首先觀察原始數據,發現無論是2013_10_31_11_33_49.jpg這種還是C360_2013-10-16-18-10-18-977_org.jpg還是IMG_20131009_072210.jpg,文件名總是有個時間,我是2013年上的大學,然后在2013年才有了手機,所以,手機的照片最早就是在2013年記錄的,考慮到現在是2017年,所以先建立了 2013 - 2017幾個文件夾((lll¬ω¬) 快成了半手動了,,,已經開始背離了最初的目的),然后發現python的os庫有個listdir可以列出來文件名。如圖。。。
然后再借助python文件操作的庫:
目錄操作:os.mkdir("file") 創建目錄復制文件:shutil.copyfile("oldfile","newfile") oldfile和newfile都只能是文件shutil.copy("oldfile","newfile") oldfile只能是文件夾,newfile可以是文件,也可以是目標目錄復制文件夾:shutil.copytree("olddir","newdir") olddir和newdir都只能是目錄,且newdir必須不存在重命名文件(目錄)os.rename("oldname","newname") 文件或目錄都是使用這條命令移動文件(目錄)shutil.move("oldpos","newpos") 刪除文件os.remove("file")刪除目錄os.rmdir("dir")只能刪除空目錄shutil.rmtree("dir") 空目錄、有內容的目錄都可以刪轉換目錄os.chdir("path") 換路徑
嗯是否感到很容易了呢?
附代碼:
import os,shutills = os.listdir('./Camera')PRint len(ls)for i in (ls): if i.find("2017")!=-1: shutil.move("./Camera/"+i,"./2017/"+i) elif i.find("2016")!=-1: shutil.move("./Camera/"+i,"./2016/"+i) elif i.find("2015")!=-1: shutil.move("./Camera/"+i,"./2015/"+i) elif i.find("2014")!=-1: shutil.move("./Camera/"+i,"./2014/"+i) elif i.find("2013")!=-1: shutil.move("./Camera/"+i,"./2013/"+i) else: shutil.move("./Camera/"+i,"./other/"+i)print "Finish"但是,還有一個問題,就是我強調過,這是手機的照片的命名方式,那么,相機的呢?是這個樣的:![]()
以及這樣的:
![]()
那么應該如何處理呢?照片其實都帶有一個exif信息,里面記錄了拍照時間,相機參數,照片參數,作者信息等等。根據這個信息,也能進行一個分類,等有時間了在搞一搞。
PS:想文件名就帶有時間信息的,完全可以在window中打開到那個文件夾,搜索年份,然后Ctrl+A 就Ok了。。。
新聞熱點
疑難解答