python 获取本地文件的创建、最后修改时间

1 时间表示概念

常见的时间表示形式为:

  • 时间戳
  • 格式化的时间字符串

timestamp(时间戳) 也称为Unix时间 或 POSIX时间;它是一种时间表示方式,表示从格林尼治时间1970年1月1日0时0分0秒开始到现在所经过的毫秒数,其值为float类型。 但是有些编程语言的相关方法返回的是秒数(Python就是这样),这个需要看方法的文档说明。需要说明的是时间戳是个差值,其值与时区无关。

2 time模块

提供各种与时间相关的函数。可以返回时间戳或struct_time形式的时间或字符串形式的时间。

time.asctime([t])将一个tuple或struct_time形式的时间(可以通过gmtime()和localtime()方法获取)转换为一个24个字符的时间字符串,格式为: "Fri Aug 19 11:14:16 2016"。如果参数t未提供,则取localtime()的返回值作为参数。
time.ctime([secs])功能同上,将一个秒数时间戳表示的时间转换为一个表示当前本地时间的字符串。如果参数secs没有提供或值为None,则取time()方法的返回值作为默认值。ctime(secs)等价于asctime(localtime(secs))
time.time()返回时间戳(自1970-1-1 0:00:00 至今所经历的秒数)
time.localtime([secs])返回以指定时间戳对应的本地时间的 struct_time对象(可以通过下标,也可以通过 .属性名 的方式来引用内部属性)格式
time.strftime(time_format_str[, struct_time_instance])将struct_time对象实例转换成字符串,如果struct_time_instance不指定则取当前本地时间对应的time_struct对象
time.strptime(time_str, time_format_str)将时间字符串转换为struct_time时间对象,如:time.strptime('2018-11-03 16:53', '%Y-%m-%d %H:%M')
>>> time.time()
1541234551.9965222
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=11, tm_mday=3, tm_hour=16, tm_min=45, tm_sec=37, tm_wday=5, tm_yday=307, tm_isdst=0)
>>> time.ctime()
'Sat Nov  3 16:49:08 2018'
>>> time.asctime()
'Sat Nov  3 16:49:18 2018'
>>> print(time.strftime('%Y-%m-%d %H:%M'))
2018-11-03 16:53
>>> time.strptime('2018-11-03 16:53', '%Y-%m-%d %H:%M')
time.struct_time(tm_year=2018, tm_mon=11, tm_mday=3, tm_hour=16, tm_min=53, tm_sec=0, tm_wday=5, tm_yday=307, tm_isdst=-1)

注意到time.ctime()和time.asctime()输出的字符串形式的时间与我们的习惯格式不同,一般使用time.strftime()转换。

此外还有datetime模块可以使用。

3 获取时间并格式化

os.stat() 方法用于在给定的路径上执行一个系统 stat 的调用。返回值中有:

  • st_mtime: 最后一次修改的时间。
  • st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。

这两个返回值均为时间戳形式。

>>> print(os.stat("D:/mm.cfg"))
os.stat_result(st_mode=33206, st_ino=10977524091732464, st_dev=3469357810, st_nlink=1, st_uid=0, st_gid=0, st_size=34, st_atime=1505129122, st_mtime=1512922391, st_ctime=1505129122)

使用time模块,可以输出格式化的文件创建修改时间。

import os,time
 
modifiedTime = time.localtime(os.stat("D:/mm.cfg").st_mtime)
createdTime = time.localtime(os.stat("D:/mm.cfg").st_ctime)
 
mTime = time.strftime('%Y-%m-%d %H:%M:%S', modifiedTime)
cTime = time.strftime('%Y-%m-%d %H:%M:%S', createdTime)
 
print("modifiedTime " + mTime)
print("createdTime " + cTime)

返回结果与系统中的信息一致。

modifiedTime 2017-12-11 00:13:11
createdTime 2017-09-11 19:25:22

 

参考

Python之日期与时间处理模块(date和datetime)

Python os.stat() 方法

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值