热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python中读取文件和图片的元数据日期

本文介绍如何使用Python获取文件和图片的创建、修改及拍摄日期。通过多种方法,如PIL库的_getexif()函数和os模块的getmtime()和stat()方法,详细讲解了这些技术的应用场景和注意事项。

1. 获取照片的拍摄日期(._getexif())

要读取照片的拍摄日期,可以使用 Python 的 PIL 库。此库提供了对图像 EXIF 数据的访问功能,EXIF 是一种标准,用于记录数码相机拍摄的照片信息。

from PIL import Image
imgPath = 'C:/Users/xx/Desktop/xxxxx.jpg'
imge = Image.open(imgPath)
exif_data = imge._getexif()
if exif_data:
ImageDate = exif_data.get(36867) # 或者 ImageDate = exif_data.get(306)
print(ImageDate)
# 输出示例: 2015:11:07 16:55:42

这种方法不仅可以读取创建日期,还能获取更多相机参数,例如光圈、焦距等。需要注意的是,并非所有照片都有完整的 EXIF 数据,且不同设备保存的数据格式可能不一致。

2. 读取文件或照片的修改时间(os.path.getmtime())

对于简单地读取文件或照片的最后修改时间,可以使用 Python 的内置模块 os。

import os
import time
imgPath = 'C:/Users/xx/Desktop/xxxxx.jpg'
ImageDate = time.ctime(os.path.getmtime(imgPath))
print(ImageDate)
# 输出示例: Thu Mar 2 22:00:37 2017

该方法适用于大多数情况下的快速查询,但要注意它返回的是文件的最后一次修改时间。对于某些类型的文件,比如 Excel 文档,这可能是最近一次保存的时间,而不是原始创建时间。

3. 获取文件的创建时间(os.stat())

如果需要更精确地获取文件的创建时间,可以使用 os.stat() 方法。

import os
import time
imgPath = 'C:/Users/HP/Desktop/Book10.xlsm'
stat_info = os.stat(imgPath)
create_time = time.ctime(stat_info.st_ctime)
print(create_time)
# 输出示例: Wed Aug 26 11:39:32 2020

此方法不仅限于图片,也适用于其他类型的文件。请注意,在不同的操作系统中,st_ctime 可能表示不同的含义;在 Windows 上它代表创建时间,而在 Unix 系统上则为状态更改时间。

总结

以上介绍了几种常见的 Python 技巧来获取文件和图片的时间戳信息。每种方法都有其适用范围和局限性,选择合适的方法取决于具体需求。希望这些内容能够帮助到你!


推荐阅读
author-avatar
也碎羽落
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有