[Python开发] 使用python读取图片的EXIF

2023-05-16

使用python读取图片的EXIF

方法

  1. 使用PIL.Image读取图片的EXIF。
  2. 使用https://pypi.python.org/pypi/ExifRead 读取图片的EXIF,得到EXIF标签(dict类型)。

代码

  1. 把a图片的EXIF复制到b图片。

    from PIL import Image
    
    image1_path = '1.jpg'
    image2_path = '2.jpg'
    im = Image.open(image1_path)
    exif = im.info['exif']
    im = Image.open(image2_path)
    im.save(image2_path, exif=exif)
  2. 如可以使用EXIF中图片原来的时间(DateTimeOriginal)对图片重命名:

    import os
    import exifread
    
    def getExif(filename):
        FIELD = 'EXIF DateTimeOriginal'
        fd = open(filename, 'rb')
        tags = exifread.process_file(fd)
        fd.close()
        print('=== ', filename)
        if FIELD in tags:
            new_name = str(tags[FIELD]).replace(':', '').replace(' ', '_') + os.path.splitext(filename)[1]
            tot = 1
            while os.path.exists(new_name):
                new_name = str(tags[FIELD]).replace(':', '').replace(' ', '_') + '_' + str(tot) + os.path.splitext(filename)[1]
                tot += 1
            print(new_name)
            os.rename(filename, new_name)
        else:
            print('No {} found'.format(FIELD))
    
    for filename in os.listdir('.'):
        if os.path.isfile(filename):
            getExif(filename)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Python开发] 使用python读取图片的EXIF 的相关文章

随机推荐

  • antDesign modal组件包裹子组件不可销毁问题

    问题 有一个列表 xff0c 该列表有查看详情操作 xff0c 详情是一个组件 xff08 Info xff09 xff0c 该组件被modal包裹 xff1a span class token operator lt span a spa
  • Win11怎么把桌面文件路径改到D盘

    Win11怎么把桌面文件路径改到D盘 xff1f 很多朋友可能才了解到桌面其实就是一个文件夹 xff0c 而且默认是在C盘里的 xff0c 当桌面放很多文件的时候 xff0c 就会占用很多C盘空间 xff0c 现在大家想要把桌面文件路径改到
  • 简单医疗系统设计(一)登录界面的制作

    这周由于忙于一些琐事 xff0c python进度比上周慢了一点 xff0c 而且廖老师后面的一些课程也没留下作业 xff0c 所以今天只能拿出以前自己写的一些干货了 先放出完成后的图 xff1a 下面是实现界面设计的代码 xff1a 这里
  • 上传文件超过限制,造成长时间无响应的解决方案

    在上传大文件 xff0c 造成长时间没有响应的情况的解决方案 xff1a 上传大文件时 xff0c 因为http协议的响应问题 xff0c 造成长时间不能向客户端发送响应请求头 解决方案 xff1a 1 向服务器发送上传大文件的reques
  • checkbox的jsTree的一个调用

    lt DOCTYPE HTML PUBLIC 34 W3C DTD HTML 4 01 Transitional EN 34 gt lt html gt lt head gt lt meta http equiv 61 34 Content
  • 灵活使用递归算法,生成Excel文件中的复合表头

    最近 xff0c 在开发中 xff0c 需要导出数据到excel文件 xff0c 文件的表头的格式是不一致的 有复合表头 xff0c 也有单表头 xff0c 那么如何灵活地生成excel文件中的复合表头 首先有一个JSON字符串格式的字段描
  • 在 ibm http server 和 websphere 之间配置 ssl

    在WebSphere的环境中 xff0c 配置SSL xff0c 有一些细节需要注意 xff1a 1 最好是先安装 ibm http server7 32bit xff0c websphere7 再安装插件 2 http server 需要
  • Ext4使用总结(二)简单的hbox布局

    布局的合理利用 xff1a 如图 xff1a xtype 39 container 39 margins 39 5 0 0 0 39 layout align 39 stretch 39 type 39 hbox 39
  • 软件开发者的精力管理(一)

    精力管理对于软件开发者来讲是非常重要的 不希望自己被长周期的项目拖垮 xff0c 不希望被连续的加班所累 我个人认为泛义的时间管理是涉及到多个方面的 而心理学 精力管理则是非常重要的 作为一名从事了多年软件开发的从业者 xff0c 我的一个
  • 如何高效能地学习和使用"工具"?

    在软件开发中 xff0c 应该注意工具的合理使用 xff0c 使得自己变得高效起来 1 工具也是产品 xff0c 有许多的工具是产品化的 既然是产品 xff0c 就很多的服务 xff0c 例如帮助文档 xff0c 论坛 xff0c 咨询人员
  • Ext4使用总结(十二) 采用 CellEditing 方式的Grid,如何取得修改的单元格数据值

    使用cellediting方式编辑数据的grid在保存数据时 xff0c 需要进行数据的处理 xff0c 所以数据处理的方式需要特别注意 cellEditing 插件的事件 listeners edit function editor e
  • 「Ubuntu」Ubuntu中的python终端配置(修改终端默认python配置,软连接,不同版本python环境配置)

    前言 通过这篇博客 xff08 Ubuntu安装Python xff09 安装完Python后 xff0c 想要在终端直接启动想启动的python版本 此时直接在终端输入python2或者python3 xff0c 发现系统已经配置好了py
  • [解题报告] CSDN竞赛第15期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 29 1 求并集 题目 由小到大输出两个单向有序链表的并集 如链表 A 1 gt 2 gt 5 gt 7 链表 B 3 gt 5 gt
  • JSP开发技术四——————EL表达式

    EL xff08 Expression Language xff09 表达式 xff0c 即正则表达式 用来操作字符串 用一些特定的字符来表示一些代码操作 xff0c 这样简化代码书写 学习正则表达式 xff0c 就是学习一些特殊符号的实用
  • [解题报告] CSDN竞赛第17期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 31 1 判断胜负 题目 已知两个字符串A B 连续进行读入n次 每次读入的字符串都为A B 输出读入次数最多的字符串 解题报告 模拟
  • [解题报告] CSDN竞赛第18期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 32 1 单链表排序 题目 单链表的节点定义如下 xff08 C 43 43 xff09 xff1a class Node publi
  • [解题报告] CSDN竞赛第22期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 36 1 c 43 43 难题 大数加法 题目 大数一直是一个c语言的一个难题 现在我们需要你手动模拟出大数加法过程 请你给出两个大整
  • [解题报告] CSDN竞赛第23期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 37 1 排查网络故障 题目 A地跟B地的网络中间有n个节点 xff08 不包括A地和B地 xff09 xff0c 相邻的两个节点是通
  • CSDN竞赛第24期

    CSDN编程竞赛报名地址 xff1a https edu csdn net contest detail 38 这次写完第一道题时遇到一个奇怪的情况 xff1a 一直在 运行中 xff0c 然后发现每道题输入做任意代码都出现一直运行中 跟小
  • [Python开发] 使用python读取图片的EXIF

    使用python读取图片的EXIF 方法 使用PIL Image读取图片的EXIF 使用https pypi python org pypi ExifRead 读取图片的EXIF xff0c 得到EXIF标签 xff08 dict类型 xf