最近有个奇怪的需求,批量修改文件的访问和修改时间。原因是在windows下重命名的时候,批量修改了文件的名称。感觉跟说绕口令一样。针对这一需求,尝试利用python的timeos两个库来解决。

查看文件的历史时间

首先基于如下代码查看文件的创建修改最后访问时间,即

1
2
3
4
5
6
7
8
import time
import os
filepath = "./file.xxx"
# 查看文件时间戳
time_create = os.path.getctime(filepath)
time_modify = os.path.getmtime(filepath)
time_access = os.path.getatime(filepath)

若需要得到格式化的时间,可以利用time.ctime()函数获取,例如

1
2
3
print(time.ctime(time_create))
Mon Jun 13 07:34:19 2016

修改文件的创建和修改时间

由于恢复的文件名以后,文件的修改时间发生了变化,需要对其时间戳进行修改,此时采用os.utime()方法来实现,例如

1
2
3
new_access_time = xxx # 注意这里需要是整数
new_modify_time = xxx # 注意这里需要是整数
os.utime(filepath, (new_access_time, new_modify_time))

References

[1] python如何不改动文件的情况下修改文件的 修改日期