Chinaunix首页 | 论坛 | 博客
  • 博客访问: 58738
  • 博文数量: 14
  • 博客积分: 305
  • 博客等级: 二等列兵
  • 技术积分: 145
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-14 17:18
文章分类

全部博文(14)

文章存档

2011年(14)

我的朋友

分类: Python/Ruby

2011-02-16 14:10:51

很多时候,我们需要获取一个文件的属性,比如创建日期,访问日期,修改日期,大小 ,只读还是隐藏等属性。用python是相当的方便。下面是我通过查资料得到的方法:

文件属性的获取,使用了os.stat() 方法:

  1. In [1]: import os

  2. In [2]: statinfo = os.stat(r'id_rsa')

  3. In [3]: statinfo
  4. 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(创建时间),例如,取得文件创建时间:

  1. In [7]: statinfo.st_ctime
  2. Out[7]: 1296629361.0
为什么是这样一个大的浮点数啊?这个时间是什么意思?

最近的学习得知,这个就是从1970-1-1 08:00:00开始的“秒数”,也就是说,这个时间就是从1970-1-1 08:00:00开始,过了1201865413.8952832秒之后的时间。那这个时间到底是什么时间呢?

使用time模块中的localtime函数可以知道:
  1. In [4]: import time

  2. In [5]: time.localtime(statinfo.st_ctime)
  3. 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)

  4. In [6]: time.localtime(statinfo.st_mtime)
  5. 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 (文件大小,以字节表示)




阅读(4617) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~