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

yipeiwu_com6年前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程序设计有所帮助。

相关文章

Python中动态获取对象的属性和方法的教程

首先通过一个例子来看一下本文中可能用到的对象和相关概念。 #coding: UTF-8 import sys # 模块,sys指向这个模块对象 import inspect...

Python线程池模块ThreadPoolExecutor用法分析

本文实例讲述了Python线程池模块ThreadPoolExecutor用法。分享给大家供大家参考,具体如下: python3内置的有Threadingpool和ThreadPoolEx...

python发送邮件功能实现代码

本文实例为大家分享了python发邮件精简代码,供大家参考,具体内容如下 import smtplib from email.mime.text import MIMEText fr...

结合Python的SimpleHTTPServer源码来解析socket通信

结合Python的SimpleHTTPServer源码来解析socket通信

何谓socket 计算机,顾名思义即是用来做计算。因而也需要输入和输出,输入需要计算的条件,输出计算结果。这些输入输出可以抽象为I/O(input output)。 Unix的计算机处理...

python 将大文件切分为多个小文件的实例

切分文件 最近遇到需要切分文件的需求,当然首选用python来解决,网上搜了下感觉都太复杂了,其实用python自带函数即可解决。 f = open('path&filename',...