Python 将 ctime 转换为自访问以来的天数

Python convert ctime to days since access

我有一个 ctime 格式的文件访问时间 - 但我真正需要的是自上次访问文件以来的天数。如何将我的 ctime 日期转换为自上次访问以来的天数?

所以这个:

fileStatObject = os.stat( iDir + "/" + fileName )
accessTime = time.ctime( fileStatObject[stat.ST_ATIME] )
print accessTime

结果: 2020 年 6 月 23 日星期二 16:06:04

但我需要的是: 113

只是不要对其调用 ctime - 它将时间戳转换为时间戳的字符串表示形式。相反,您可以找到自该时间戳以来经过了多少时间,并以天为单位表示:

file_stat = os.stat(os.path.join(i_dir, file_name))
access_timestamp = datetime.datetime.fromtimestamp(file_stat[stat.ST_ATIME])
elapsed = datetime.datetime.now() - access_timestamp
print(f"File was accessed {elapsed.days} days ago")

您可能希望将经过的时间进一步四舍五入,但这应该有助于说明如何更向前。

您还应该注意时区问题。您可能需要使用 utcnow() 而不是 now();我没有在这个答案中解决这个问题。