Python模块之stat

stat模块

功能:os.stat()返回的文件属性列表中各值的意义

语法:os.stat(path)

import os
import time
import stat

fileStats = os.stat('test.txt')                          # 获取文件/目录的状态
fileInfo = {
'Size': fileStats[stat.ST_SIZE],                         # 获取文件大小
'LastModified':time.ctime(fileStats[stat.ST_MTIME]),     # 获取文件最后修改时间
'LastAccessed':time.ctime(fileStats[stat.ST_ATIME]),     # 获取文件最后访问时间
'CreationTime':time.ctime(fileStats[stat.ST_CTIME]),     # 获取文件创建时间
'Mode':fileStats[stat.ST_MODE]                           # 获取文件的模式
}

# print fileInfo

for field in fileInfo:                              # 显示对象内容
    print('%s:%s' % (field, fileInfo[field]))


if stat.S_ISDIR(fileStats[stat.ST_MODE]):           # 判断是否路径
    print('Directory. ')
else:
    print('Non-directory.')

if stat.S_ISREG(fileStats[stat.ST_MODE]):           # 判断是否一般文件
    print('Regular file.')
elif stat.S_ISLNK(fileStats[stat.ST_MODE]):         # 判断是否链接文件
    print('Shortcut.')
elif stat.S_ISSOCK(fileStats[stat.ST_MODE]):        # 判断是否套接字文件
    print('Socket.')
elif stat.S_ISFIFO(fileStats[stat.ST_MODE]):        # 判断是否命名管道
    print('Named pipe.')
elif stat.S_ISBLK(fileStats[stat.ST_MODE]):         # 判断是否块设备
    print('Block special device.')
elif stat.S_ISCHR(fileStats[stat.ST_MODE]):         # 判断是否字符设置
    print('Character special device.')

stat 模块描述了os.stat(filename)返回的文件属性列表中各值的意义.我们可方便地根据stat模块存取os.stat()中的值. os.stat(path)执行一个stat()系统调用在给定的path上,返回一个类元组对象(stat_result对象,包含10个元素),属性 与stat结构成员相关:
st_mode(权限模式)
st_ino(inode number)
st_dev(device)
st_nlink(number of hard links)
st_uid(所有用户的user id)
st_gid(所有用户的group id)
st_size(文件大小,以位为单位)
st_atime(最近访问的时间)
st_mtime(最近修改的时间)
st_ctime(创建的时间)

>>> print(os.stat("test.txt"))
os.stat_result(st_mode=33206, st_ino=77124143618747593, st_dev=1620667770, st_nl
ink=1, st_uid=0, st_gid=0, st_size=29, st_atime=1463121512, st_mtime=1463123393,
 st_ctime=1463121512)
>>> print("mode:", os.stat("test.txt").st_mode)                     # 权限模式
mode: 33206
>>> print("inode number:", os.stat("test.txt").st_ino)              # inode number
inode number: 77124143618747593
>>> print("device", os.stat("test.txt").st_dev)                     # device
device 1620667770
>>> print("number of hard links:", os.stat("test.txt").st_nlink)    # number of hard links
number of hard links: 1
>>> print("user id", os.stat("test.txt").st_uid)                    # 所有用户的user id
user id 0
>>> print("group id:", os.stat("test.txt").st_gid)                  # 所有用户的group id
group id: 0
>>> print("file size:", os.stat("test.txt").st_size)                # 文件的大小,以位为单位
file size: 29
>>> print("file atime:", os.stat("test.txt").st_atime)              # 文件最后访问时间
file atime: 1463121512.3926847
>>> print("file mtime:", os.stat("test.txt").st_mtime)              # 文件最后修改时间
file mtime: 1463123393.0182502
>>> print("file ctime:", os.stat("test.txt").st_ctime)              # 文件创建时间
file ctime: 1463121512.3926847
posted @ 2016-08-01 11:02  每天进步一点点!!!  阅读(767)  评论(0编辑  收藏  举报