Python实现获取照片拍摄日期并重命名的方法

yipeiwu_com5年前Python基础

本文实例讲述了Python实现获取照片拍摄日期并重命名的方法。分享给大家供大家参考,具体如下:

python获取照片的拍摄日期并重命名。不支持重复处理的中断。

重命名为:拍摄日期__原文件名

import os
import exifread
def getExif(filename):
  FIELD = 'EXIF DateTimeOriginal'
  fd = open(filename, 'rb')
  tags = exifread.process_file(fd)
  fd.close()
  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
    new_name2 = new_name.split(".")[0] + '__' +filename
    print(new_name2)
    os.rename(filename, new_name2)
  else:
    print('No {} found'.format(FIELD))
for filename in os.listdir('.'):
  if os.path.isfile(filename):
    getExif(filename)

有拍摄日期的文件数,年轻时多么爱拍照。。。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

Django Admin实现三级联动的示例代码(省市区)

Django Admin实现三级联动的示例代码(省市区)

通过自定义Admin的模板文件实现省市区的三级联动.要求创建记录时,根据省>市>区的顺序选择依次显示对应数据. 修改记录时默认显示已存在的数据. Model cla...

Python yield使用方法示例

1. iterator叠代器最简单例子应该是数组下标了,且看下面的c++代码: 复制代码 代码如下:int array[10];for ( int i = 0; i < 10; i...

Python GUI Tkinter简单实现个性签名设计

Python GUI Tkinter简单实现个性签名设计

一、Tkinter的介绍和简单教程 Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 由于 Tkinter...

Python实现运行其他程序的四种方式实例分析

Python实现运行其他程序的四种方式实例分析

本文实例讲述了Python实现运行其他程序的四种方式。分享给大家供大家参考,具体如下: 在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本...

彻底搞懂Python字符编码

彻底搞懂Python字符编码

不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError、UnicodeDecodeError 错误,每当遇到错误我们...