场景:以前的几千张旧照片,各种扩展名格式的,通过格式工厂统一转成jpg格式,然后通过python检查是否有拍摄日期,如果没有拍摄日期,则将文件的修改时间做为拍摄日期、GPS时间写入。如果文件名不是以IMG_开头的,则将文件重命名为IMG_修改时间,如果文件名冲突,则文件名后加序号。

# 导入pyexiv2包
from pyexiv2 import Image
import os
import time #文件路径
file_path = r'D:\654\123'def SetNewTime(filename):absfile = file_path + "\\" + filenamemodifydate=os.path.getmtime(absfile)timeStruct = time.localtime(modifydate)exif_dict = {}exif_dict['Exif.GPSInfo.GPSDateStamp']=time.strftime('%Y:%m:%d',timeStruct)exif_dict['Exif.GPSInfo.GPSTimeStamp']=time.strftime('%H/1 %M/1 %S/1',timeStruct)exif_dict['Exif.Photo.DateTimeOriginal']=time.strftime('%Y:%m:%d %H:%M:%S',timeStruct)exif_dict['Exif.Photo.DateTimeDigitized']=time.strftime('%Y:%m:%d %H:%M:%S',timeStruct)exif_dict['Exif.Image.DateTime']=time.strftime('%Y:%m:%d %H:%M:%S',timeStruct)img = Image(absfile)img.modify_exif(exif_dict)os.utime(absfile, (modifydate, modifydate))print("GPSDateStamp:" + exif_dict['Exif.GPSInfo.GPSDateStamp'])print("GPSTimeStamp:" + exif_dict['Exif.GPSInfo.GPSTimeStamp'])print("DateTime:" + time.strftime('%Y-%m-%d %H:%M:%S',timeStruct))print("FileName:" + absfile)print("----------------------------------")def SetNewFileName(filename):head = filename[0:4]if (head == "IMG_"): #图片名不能含有中文,否则打不开图片returnabsfile = file_path + "\\" + filenamemodifydate = os.path.getmtime(absfile)timeStruct = time.localtime(modifydate)datestr = time.strftime('IMG_%Y%m%d_%H%M%S',timeStruct)absdstfile = file_path + "\\" + datestr + ".jpg"newdatestr = datestrcount = 0while 1:try:res = os.rename(absfile, absdstfile)print("rename filename from " + filename + " to " +  newdatestr + ".jpg")breakexcept BaseException:# 存在同名文件则添加序号print("try filename " + absdstfile + " error")count = count + 1newdatestr = datestr + "_" + str(count)absdstfile = file_path + "\\" + newdatestr + ".jpg"def main():#提取文件中的所有文件生成一个列表folders = os.listdir(file_path)filecount = 0for file in folders:#判断文件后缀名是否为jpgif(file.split('.')[-1]=='jpg'):filecount = filecount + 1print("num:" + str(filecount) + "  current file : " + file)try:filename=file_path+"\\"+fileimg = Image(filename)takendate = img.read_exif()['Exif.Photo.DateTimeOriginal']except BaseException:#没有拍摄日期信息SetNewTime(file)SetNewFileName(file)if __name__ == '__main__':main()

python图像批量导入相关推荐

  1. python 图像批量png转jpg格式

    方法一: 适用win和linux import os import sysfrom PIL import Imageinput_folder=r'F:\VOC2012\PNGImages' #源文件夹 ...

  2. python 录入数据不重复_python Django批量导入不重复数据

    本文为大家分享了python Django批量导入不重复数据的实现代码,供大家参考,具体内容如下 程序如下: #coding:utf-8 import os os.environ.setdefault ...

  3. 终端证书文件批量导入数据库的Python源码

    用于将终端证书文件批量导入进数据库 [注意]Python2和Python3,在数的进制转换上,不太一样 Python 2 content_str += binascii.hexlify(b) Pyth ...

  4. python处理完数据导入数据库_python操作数据库之批量导入

    python操作数据库之批量导入 Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进. Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的 ...

  5. ubuntu导入python的包_在ubuntu环境下怎么利用python将数据批量导入数据hbase

    斯蒂芬大帝 能够单条导入就能够批量导入配置 thriftpython使用的包 thrift个人使用的python 编译器是pycharm community edition. 在工程中设置中,找到pr ...

  6. python批量导入网页信息_python批量导入数据进Elasticsearch的实例

    ES在之前的博客已有介绍,提供很多接口,本文介绍如何使用python批量导入.ES官网上有较多说明文档,仔细研究并结合搜索引擎应该不难使用. 先给代码 #coding=utf-8 from datet ...

  7. Python批量导入图片生成能治疗颈椎病的HTML5版课件

    本文要点:Python文件操作,HTML5的figure元素和CSS3属性的用法. 说明:1):本文图片来自于相关阅读中Python批量导出多个PPT/PPTX文件中每个幻灯片为独立JPG图片或Pyt ...

  8. 用python批量导入阿里云安全组规则

    背景 因为学习买了一台服务器,但是也没什么经验,一开始把安全组中几个需要用的端口全部授权成0.0.0.0,0,导致服务器买了才没几天就被人植入了木马挖矿进程,系统也被破坏的面目全非,重装了系统之后为了 ...

  9. python批量导入图片_Python批量导入图片生成PowerPoint 2007+文件

    原标题:Python批量导入图片生成PowerPoint 2007+文件 说明:本文是"Python批量爬取微信公众号文章中的图片"的后续文章,用来把从公众号批量抓取的图片还原为P ...

最新文章

  1. Forest Program dfs+tanjar仙人掌
  2. 以太坊PHP离线交易开发包
  3. matlab矩阵分解
  4. 【STM32】通用定时器(TIM2到TIM5)
  5. thinkpadt450s换键盘视频_ikbc c87 入门级有线机械键盘测评
  6. jms.jar 2.0_JMS 2.0中JMSContext的类型
  7. 人生致命的八个经典问题
  8. LeetCode 2115. 从给定原材料中找到所有可以做出的菜(拓扑排序)
  9. 如何进行产品战略规划
  10. 甲骨文员工谈被裁原因;《绝地求生》停机维护;谷歌正研发折叠屏样机 | 极客头条...
  11. 金山词霸2007两个小BUG
  12. 华为笔试题 字符串解压缩(C语言解法)
  13. 神经网络放大图片,神经网络AI滤镜
  14. 微信聊天防封 亲测 百分之95有效 【附源码】
  15. xch-sboot单体服务架子
  16. [JAVA]用数学解释数组移步问题(新增对链表移步的解释)
  17. 微信公众号数据2019_2019年9月原创公众号排行榜数据报告出炉
  18. 机器学习(Hands on)第二章修正版完整代码
  19. Linux 系统调用深思:从原理到实战
  20. FPGA 串口波特率时钟的概念

热门文章

  1. Android ListView item显示时高度变化
  2. java递归函数例子_Java递归函数详解附案例
  3. 信号与系统公式笔记(4)
  4. 恢复未保存word文档
  5. 写起bug来更快了。。。。。。。送9个机械键盘
  6. nn.moduleList 和Sequential的理解
  7. c语言 32位浮点数,32位浮点数范围的求法
  8. php+mysql商城
  9. 时刻重视自己邮件信息不泄露
  10. HTML5期末大作业:在线音乐播放器网站设计——html5全屏的音乐列表播放器页面源码 HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设