获得文件状态,例如:
1.文件的类型(普通文件,目录,符号连接,设备文件...)
2.文件的访问权限
3.文件的最后的访问/修改/节点状态更改时间
4.普通文件的大小
...
#
系统调用:标准库中os模块下的三个系统调用stat,fstat,lstat获取文件状态
快捷函数:标准库中os.path下一些函数
# ll
a.txt # 普通文件
d/ # 目录
x.txt -> a.txt # 符号连接文件( ln [选项] 源文件 目标文件)-s:建立软链接文件。如果不加 "-s" 选项,则建立硬链接文件;-f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件;
import os
os.stat('x.txt') # 实际取a.txt
os.lstat('x.txt') # lstat不跟随符号连接
f = open()
f.fileno()
os.fstat(f.fileno())
s = os.stat('a.txt') # posix.stat_result(st_mode=33204,st_ino=4982715,st_dev=2054L,st_nlink=1,st_uid=1000,st_gid=1000,st_size=17,st_atime=1465711466,st_mtime=1465711466,st_ctime=1465711466)
1.文件类型:s.st_mode,实际上是一些标志位构成
bin(s.st_mode) # ‘0b1000000110110100’ # 转换成二进制,这些标志位
import stat
stat. # IS方法
stat.S_ISDIR(s.st_mode) # 进行与或操作判断是否为文件夹
stat.S_ISREG(s.st_mode) # True,判断普通文件
2.文件权限:s.st_mode
s.st_mode & stat.S_IRUSR # R代表读权限,只要是真值>0
ll a.txt
s.st_mode & stat.S_IXUSR # 0
3.文件时间
st.atime # access
st.mtime # modify
st.ctime # create
s.st_atime
import time
time.localtime(s.st_atime)
4.文件大小:st_size
os.path.
1.文件类型 os.path.isdir('x.txt')
2.文件权限 无
3.文件时间 os.path.getctime('a.txt')
4.文件大小 os.path.getsize('a.txt')