在 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
转换为本地时间。
我需要提取文件的创建时间。但不是日期。作为创建文件的示例:
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
转换为本地时间。