python让图片按照exif信息里的创建时间进行排序

python让图片按照exif信息里的创建时间进行排序,第1张

概述python让图片按照exif信息里的创建时间进行排序

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

import osimport shutilimport Imagefrom PIL.ExifTags import Tagsdef print_all_kNown_exif_Tags():    for k in sorted(Tags):        print k,Tags[k] def print_all_exif_Tags(image):    try:        img = Image.open(image)    except Exception,e:        print image,"skipPing due to",e    else:        xf = img._getexif()        for tag in xf:            print Tags.get(tag),xf[tag]    finally:        print 'done'  def get_minimum_creation_time(exif_data):    mtime = "?"    if 306 in exif_data and exif_data[306] < mtime: # 306 = DateTime        mtime = exif_data[306]    if 36867 in exif_data and exif_data[36867] < mtime: # 36867 = DateTimeOriginal        mtime = exif_data[36867]    if 36868 in exif_data and exif_data[36868] < mtime: # 36868 = DateTimeDigitized        mtime = exif_data[36868]    return mtime  def get_creationdate_with_filename_as_dict(List_of_folders):    print "Processing all image files in:"     result = {}    for folder in List_of_folders:        print "- " + folder        counter = 0        for f in os.Listdir(folder):            counter += 1            fullfilename = folder + "\" + f            try:                img = Image.open(fullfilename)            except Exception,e:                print "    SkipPing '%s' due to exception: %s"%(f,e)                continue            mtime = get_minimum_creation_time(img._getexif())            i = 0            while mtime+"_"*i in result:                i += 1            mtime = mtime+"_"*i            result[mtime] = fullfilename        print "  Found %s orignal files in %s."%(counter,folder)    print "Added total of %s to dictionary."%len(result)    return result  def copy_from_image_dict_to_directory(image_dict,output_dir):    assert os.path.exists(output_dir)    for i,key in enumerate(sorted(image_dict)):        dummy,extension =  os.path.splitext(image_dict[key])        new_file_name = key.replace(":","-") + extension        output_file = output_dir + new_file_name        shutil.copy2(image_dict[key],output_file)    print "copIEd %s files to %s"%(i+1,output_dir)  if __name__=="__main__":    source_dir = "/var/tmp/images"    output_dir = "/var/tmp/output"     # obtain /var/tmp/images/iPhone,/var/tmp/images/CanonPowerShot,/var/tmp/images/Nikon1    List_of_folders = [source_dir + subfolder for subfolder in os.Listdir(source_dir)]     all_files = get_creationdate_with_filename_as_dict(List_of_folders)    copy_from_image_dict_to_directory(all_files,output_dir)

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的python让图片按照exif信息里的创建时间进行排序全部内容,希望文章能够帮你解决python让图片按照exif信息里的创建时间进行排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1199036.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存