Python 获取文件与图片创建日期的三种方法

洛溪
洛溪
发布时间:2026-10-14 | 5人浏览过
原创

本文介绍在 Python 中获取文件或照片创建日期的三种常用方法。通过 PIL 的 _getexif() 读取照片拍摄时间,利用 os.path.getmtime() 获取文件修改时间,以及使用 os.stat() 提取文件状态中的创建或修改时间。文章对比了各方法的适用场景与局限性,帮助开发者根据实际需求选择合适方案。

本文记录如何使用 Python 来抓取图片或文件的创建日期与修改日期。

使用 _getexif() 读取照片拍摄时间

1. 读取照片创建日期(._getexif())


from PIL import Image

imgPath = 'C:/Users/xx/Desktop/xxxxx.jpg'
imge = Image.open(imgPath)
exif_data = imge._getexif()
ImageDate = exif_data[36867]
# 或者 ImageDate = exif_data[306]

print(ImageDate)

# >>> Output:
# >>> 2015:11:07 16:55:42

这种方法尤其适用于照片数据的读取。使用._getexif()方法,不仅能读取创建日期,还能获取许多相机数据,例如光圈、焦距等。通过这种方式抓取照片的拍摄日期是比较准确的,因为许多照片的文件创建日期和修改日期并不等于实际的拍摄日期。

然而,这种方法存在一个不足之处:在批量读取照片日期时,部分照片的日期格式可能不一致,从而导致处理上的不便。

使用 os.path.getmtime() 获取文件修改时间

2. 读取文件或照片创建日期(os.path.getmtime())


import os
import time

imgPath = 'C:/Users/xx/Desktop/xxxxx.jpg'
ImageDate = time.ctime(os.path.getmtime(imgPath))

print(ImageDate)

# >>> Output:
# >>> Thu Mar 2 22:00:37 2017

该方法更为简单,并且解决了方法1中日期格式不统一的问题。

但需要注意:os.path.getmtime()方法实际上抓取的是文件的“修改日期”。因此,如果是照片,该方法得到的结果通常对应创建日期;但如果是 Excel 文档等文件,得到的则是上次保存文件的日期,而非创建日期。

若需获取 Excel 文件的创建日期而非修改日期,可以使用另一个方法os.path.getctime()。实际上,os.path模块中还有许多实用功能,堪称日常开发的必备工具。

但需注意:与前述情况类似,许多照片的文件创建日期和修改日期并不等于实际的拍摄日期。

使用 os.stat() 提取文件状态信息

3. 读取文件状态中的创建日期(os.stat())


import os
imgPath = 'C:/Users/HP/Desktop/Book10.xlsm'
ImageDate = time.ctime(os.stat(imgPath).st_mtime)

print(ImageDate)

# >>> Output:
# >>> Wed Aug 26 11:39:32 2020

这种方法与第二种方法类似,区别在于使用os.stat()方法读取文件的各种属性信息,然后通过os.stat(imgPath).st_mtime选择创建时间这一属性。

到此这篇关于用 Python 读取文件和照片的创建日期的文章就介绍到这了,更多相关 Python 读取文件和照片的创建日期内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表