在 Python 中提取文件的创建时间

Extracting creation-minute of a file in Python

我需要提取文件的创建时间。但不是日期。作为创建文件的示例:

Tue Jul 31 22:48:58 2018

代码应该打印 1368(结果 from:22hours*60+24 分钟)

我得到了以下程序,它运行得很好,但在我看来很丑。

import os, time

created=time.ctime(os.path.getctime(filename)) # example result: Tue Jul 31 22:48:58 2018
hour=int(created[11:13])
minute=int(created[14:16])
minute_created=hour*60+minute

print (minute_created)

因为我喜欢编写漂亮的代码,所以我的问题是:在 Python 中是否有更优雅的方式来做到这一点?

使用正则表达式:

import os, time, re

time = time.ctime(os.path.getctime(filename))
hours, mins, secs = map(int, re.search(r'(\d{2}):(\d{2}):(\d{2})', time).groups())
minutes_created = hours*60+mins
minutes_created_fr = minutes_created + secs/60 # bonus with fractional seconds

您可以对实际的 ctime 结果使用模数:

from pathlib import Path
p=Path('/tmp/file')

然后获取 ctime 结果并删除除时间戳的时间部分以外的所有内容:

ctime_tod=p.stat().st_ctime % (60*60*24) # just the time portion

然后用divmod得到分秒:

m, s = map(int, divmod(ctime_tod, 60))   # just minutes and seconds

m 将包含文件创建的分钟部分和 s 秒。请注意,大多数操作系统上的时间戳将采用 UTC,其中 time.ctime 转换为本地时间。