python获取文件属性的方法

发布时间:2020-02-04编辑:脚本学堂
使用python也可以获取一个文件的属性,比如创建日期,访问日期,修改日期,大小 ,只读还是隐藏等属性。文件属性的获取,使用了os.stat() 方法:
复制代码 代码如下:In [

使用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 (文件大小,以字节表示)。

更多的,查询python手册吧,呵呵。