4.4【文件IO操作】访问文件状态

获得文件状态,例如:
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')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值