python图像批量导入
场景:以前的几千张旧照片,各种扩展名格式的,通过格式工厂统一转成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图像批量导入相关推荐
- python 图像批量png转jpg格式
方法一: 适用win和linux import os import sysfrom PIL import Imageinput_folder=r'F:\VOC2012\PNGImages' #源文件夹 ...
- python 录入数据不重复_python Django批量导入不重复数据
本文为大家分享了python Django批量导入不重复数据的实现代码,供大家参考,具体内容如下 程序如下: #coding:utf-8 import os os.environ.setdefault ...
- 终端证书文件批量导入数据库的Python源码
用于将终端证书文件批量导入进数据库 [注意]Python2和Python3,在数的进制转换上,不太一样 Python 2 content_str += binascii.hexlify(b) Pyth ...
- python处理完数据导入数据库_python操作数据库之批量导入
python操作数据库之批量导入 Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进. Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的 ...
- ubuntu导入python的包_在ubuntu环境下怎么利用python将数据批量导入数据hbase
斯蒂芬大帝 能够单条导入就能够批量导入配置 thriftpython使用的包 thrift个人使用的python 编译器是pycharm community edition. 在工程中设置中,找到pr ...
- python批量导入网页信息_python批量导入数据进Elasticsearch的实例
ES在之前的博客已有介绍,提供很多接口,本文介绍如何使用python批量导入.ES官网上有较多说明文档,仔细研究并结合搜索引擎应该不难使用. 先给代码 #coding=utf-8 from datet ...
- Python批量导入图片生成能治疗颈椎病的HTML5版课件
本文要点:Python文件操作,HTML5的figure元素和CSS3属性的用法. 说明:1):本文图片来自于相关阅读中Python批量导出多个PPT/PPTX文件中每个幻灯片为独立JPG图片或Pyt ...
- 用python批量导入阿里云安全组规则
背景 因为学习买了一台服务器,但是也没什么经验,一开始把安全组中几个需要用的端口全部授权成0.0.0.0,0,导致服务器买了才没几天就被人植入了木马挖矿进程,系统也被破坏的面目全非,重装了系统之后为了 ...
- python批量导入图片_Python批量导入图片生成PowerPoint 2007+文件
原标题:Python批量导入图片生成PowerPoint 2007+文件 说明:本文是"Python批量爬取微信公众号文章中的图片"的后续文章,用来把从公众号批量抓取的图片还原为P ...
最新文章
- Forest Program dfs+tanjar仙人掌
- 以太坊PHP离线交易开发包
- matlab矩阵分解
- 【STM32】通用定时器(TIM2到TIM5)
- thinkpadt450s换键盘视频_ikbc c87 入门级有线机械键盘测评
- jms.jar 2.0_JMS 2.0中JMSContext的类型
- 人生致命的八个经典问题
- LeetCode 2115. 从给定原材料中找到所有可以做出的菜(拓扑排序)
- 如何进行产品战略规划
- 甲骨文员工谈被裁原因;《绝地求生》停机维护;谷歌正研发折叠屏样机 | 极客头条...
- 金山词霸2007两个小BUG
- 华为笔试题 字符串解压缩(C语言解法)
- 神经网络放大图片,神经网络AI滤镜
- 微信聊天防封 亲测 百分之95有效 【附源码】
- xch-sboot单体服务架子
- [JAVA]用数学解释数组移步问题(新增对链表移步的解释)
- 微信公众号数据2019_2019年9月原创公众号排行榜数据报告出炉
- 机器学习(Hands on)第二章修正版完整代码
- Linux 系统调用深思:从原理到实战
- FPGA 串口波特率时钟的概念
热门文章
- Android ListView item显示时高度变化
- java递归函数例子_Java递归函数详解附案例
- 信号与系统公式笔记(4)
- 恢复未保存word文档
- 写起bug来更快了。。。。。。。送9个机械键盘
- nn.moduleList 和Sequential的理解
- c语言 32位浮点数,32位浮点数范围的求法
- php+mysql商城
- 时刻重视自己邮件信息不泄露
- HTML5期末大作业:在线音乐播放器网站设计——html5全屏的音乐列表播放器页面源码 HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设