Python如何获取文件创建以来的天数 附类型报错解决方案
报错原因
触发类型不支持报错的核心原因是运算数类型不匹配:
today是datetime.datetime类型的时间对象creation_date是通过字符串格式化拼接生成的普通字符串(内容是带"created: "前缀的可读时间文本)
Python不支持datetime对象和字符串直接做减法运算,因此会抛出类型错误。
修正方法
不要先把文件创建时间转成字符串格式再做计算,直接将os.path.getctime()返回的时间戳转为datetime对象,即可和当前时间做差值计算,修正后可运行的代码如下:
import os import datetime path = 'D:/Reg.txt' # 获取文件创建时间的时间戳,直接转换为datetime对象 creation_time = datetime.datetime.fromtimestamp(os.path.getctime(path)) current_time = datetime.datetime.today() # 计算时间差 time_delta = current_time - creation_time print(time_delta.days)
补充说明:
os.path.getctime()的返回值存在系统差异:Windows环境下该值对应文件的实际创建时间;Linux、macOS等类Unix环境下该值对应文件inode元数据的最后修改时间,并非文件创建时间。如果需要在类Unix系统下获取准确的文件创建时间,Python3.4及以上版本可使用pathlib.Path的st_birthtime属性获取。
内容的提问来源于stack exchange,提问作者wezzo
相关产品推荐
相关产品推荐

