很多时候,我们需要获取一个文件的属性,比如创建日期,访问日期,修改日期,大小 ,只读还是隐藏等属性。用python是相当的方便。下面是我通过查资料得到的方法:
文件属性的获取,使用了os.stat() 方法:
- In [1]: import os
-
-
In [2]: statinfo = os.stat(r'id_rsa')
-
-
In [3]: statinfo
-
Out[3]: posix.stat_result(st_mode=33152, st_ino=127634L, st_dev=2050L, st_nlink=1, st_uid=502, st_gid=502, st_size=883L, st_atime=1296754862, st_mtime=1285663516, st_ctime=1296629361)
使用os.stat的返回值statinfo的三个属性获取文件的创建时间等
st_atime (访问时间), st_mtime (修改时间), st_ctime(创建时间),例如,取得文件创建时间:
- In [7]: statinfo.st_ctime
-
Out[7]: 1296629361.0
为什么是这样一个大的浮点数啊?这个时间是什么意思?
最近的学习得知,这个就是从1970-1-1 08:00:00开始的“秒数”,也就是说,这个时间就是从1970-1-1 08:00:00开始,过了1201865413.8952832秒之后的时间。那这个时间到底是什么时间呢?
使用time模块中的localtime函数可以知道:
- In [4]: import time
-
-
In [5]: time.localtime(statinfo.st_ctime)
-
Out[5]: time.struct_time(tm_year=2011, tm_mon=2, tm_mday=2, tm_hour=14, tm_min=49, tm_sec=21, tm_wday=2, tm_yday=33, tm_isdst=0)
-
-
In [6]: time.localtime(statinfo.st_mtime)
-
Out[6]: time.struct_time(tm_year=2010, tm_mon=9, tm_mday=28, tm_hour=16, tm_min=45, tm_sec=16, tm_wday=1, tm_yday=271, tm_isdst=0)
现在已经很清楚了,2010,9-28,16:45
另外,statinfo的属性还有:
st_size (文件大小,以字节表示)