作者:也碎羽落 | 来源:互联网 | 2024-12-25 13:04
本文介绍如何使用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 技巧来获取文件和图片的时间戳信息。每种方法都有其适用范围和局限性,选择合适的方法取决于具体需求。希望这些内容能够帮助到你!