20120620
ผมเป็นคนนึงที่เวลาถ่ายรูปแล้วไม่ได้ใช้โปรแกรมที่มากับกล้องหรือโปรแกรมจัดการภาพอื่นๆ ในการจัดการกับภาพที่ถ่ายมา สิ่งที่ทำก็คือถอดการ์ดความจำจากกล้องมาใส่เครื่องแล้วก็เลือกเรียงรูปตามวันเดือนปี ห้อยท้ายด้วยกิจกรรม
ตอนนี้กิจกรรมที่ว่าส่วนมากก็ถ่ายรูปน้องบุ้งกี๋ ถ่ายไปเรื่อยๆ เพราะหน่วยความจำพอเพียงพอจะมาเรียงตามวันที่ก็เสียเวลาในการเลือกวัน สร้างโฟล์ดเดอร์ ย้ายรูปมาลงโฟล์ดเดอร์ ก็เลยเขียนสคริปจัดการส่วนนี้ด้วยภาษาไพธอน
ได้ออกมาดังนี้
#------------------------------------------------------------------------------- # Name: ArrangeImageFile4BK # Purpose: Arrange jpg image file in to folder by date # # Author: Enu # # Created: 20/06/2012 # Copyright: (c) Enu 2012 # Licence: CopyLeft #------------------------------------------------------------------------------- import os, os.path, sys import datetime, shutil def listOnlyFile(directory,filetype): lowerType = filetype.lower() upperType = filetype.upper() fileList=[] for root, dirs, files in os.walk(directory): for name in files: if name[-3:] == lowerType or name[-3:]== upperType: filename = os.path.join(root, name) fileList.append(filename) return fileList def ensure_dir(folderPath): if not os.path.exists(folderPath): os.makedirs(folderPath) def arrangeImage(fileList,targetFolder): for image in fileList: createTime = os.path.getmtime(image) d = datetime.datetime.fromtimestamp(createTime) if d.month<10: month = "0"+str(d.month) else: month = str(d.month) if d.day<10: day = "0"+str(d.day) else: day = str(d.day) strDate = str(d.year)+ month + day +"_BK" folderPath = os.path.join(targetFolder,strDate) ensure_dir(folderPath) #print folderPath shutil.move(image,folderPath) print "move " + image print "finish" #========================================================= #================ Start Main script ============================= #========================================================= if __name__ == '__main__': def Usage(): print ' ' print ' :::Arrange BK image to folder by Date:::' print 'Usage: ArrangeImageFile4BK.py [sourceFolder] [targetFolder]' print ' ' print ' -only jpg file format' print ' -copy to YYYYMMDD_BK folder' print ' ' argv = sys.argv if len(argv) != 3: Usage() sys.exit(1) else: sourceFolder = argv[1] targetFolder = argv[2] print "sourceFolder: ",sourceFolder print "targetFolder: ",targetFolder drive = sourceFolder fileList = listOnlyFile(drive,"JPG") arrangeImage(fileList,targetFolder)
โดยโฟล์ดเดอร์ที่สร้างขึ้นจะใช้ชื่อ ปีเดือนวันตามด้วย _BK ใครอยากเปลี่ยนเป็นอย่างอื่น หรือเอาออกก็ตามสะดวก
รูปที่อยู่วันเดือนปีเดียวกัน ก็จะถูกย้ายเข้าโฟล์ดเดอร์ เท่านี้ก็เรียบร้อยประหยัดเวลาดี
วิธีการเรียกใช้ก็เรียกผ่า่น command prompt ของวินโดว์เช่นบันทึกไว้ในชื่อ ArrangeImageFile4BK.py ก็สั่ง
>> ArrangeImageFile4BK.py SourceFolder TargetFolder
โดย
SourceFolder คือโฟล์ดเดอร์ที่มีภาพ jpg อยู่
TargetFolder คือโฟล์ดเดอร์ที่ต้องการเก็บข้อมูลภาพที่จัดการแล้ว