循环中获取文件时间戳失败,触发AttributeError: module 'ntpath' has no attribute 'gettime'
解决文件时间戳获取失败的问题
错误根源
你代码里调用的os.path.gettime是不存在的方法,这是触发AttributeError的直接原因。Python的os.path模块没有这个函数,正确的文件时间获取函数分为两种:
os.path.getmtime(file_path):获取文件最后修改时间,返回Unix时间戳(float类型,单位秒)os.path.getctime(file_path):Windows环境下返回文件创建时间,Unix/Linux环境下返回文件状态最后变更时间,同样返回Unix时间戳
另外你代码里的路径拼接flpath=path+f存在兼容性风险,不同系统的路径分隔符不同,建议用os.path.join(path, f)生成合法路径。
修正后的代码示例
获取文件修改时间并返回时间戳
import os def fileTM(f, path): # 安全拼接文件路径 flpath = os.path.join(path, f) # 获取文件最后修改时间的时间戳 filetm = os.path.getmtime(flpath) return filetm
Windows环境下获取文件创建时间
import os def fileTM(f, path): flpath = os.path.join(path, f) # Windows专属:获取文件创建时间戳 filetm = os.path.getctime(flpath) return filetm
额外说明
如果需要将时间戳转换为datetime对象,可以这样处理:
import datetime dt = datetime.datetime.fromtimestamp(filetm)
反之,只有当你手里是datetime对象时,才需要用datetime.timestamp(dt)转成时间戳——你之前的代码里多了一步不必要的转换,因为os.path.getmtime/getctime本身返回的就是时间戳。
内容的提问来源于stack exchange,提问作者Ajay Srinivas
相关产品推荐
相关产品推荐

