使用python修改文件的修改时间和访问时间

事情起源于我一个很简单的需求:将文件夹中显示的文件按照自定义的规则排序。我有一堆文件夹,文件夹的名称最后一个字符是我想要的排序关键字。
我用的是Ubuntu系统,找了一圈也没发现系统提供这个功能。最后只好自己实现。
思路很简单:

  1. 先用python中的os.listdir()方法将文件名读进列表
  2. 然后以我想要的方式对列表进行排序。
  3. 排序完成之后挨个修改文件的修改时间。
  4. 最后在文件夹中按照修改时间排序就可以了。

代码如下:

1
2
3
4
5
import os
stinfo = os.stat('path') #stinfo可以当作具有十个元素的列表使用
print(stinfo)
atime,mtime = stinfo[-3], stinfo[-2]
os.utime('path',(atime,mtime))

其中atime是access time,mtime是modified time。