Python3 os.stat() 方法
概述
os.stat() 方法用于在给定的路径上执行一个系统 stat 的调用。
语法
stat()方法语法格式如下:
os.stat(path)
参数
path -- 指定路径
返回值
stat 结构:
st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID。
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。
实例
以下实例演示了 stat() 方法的使用:
#!/usr/bin/python3
import os, sys
# 显示文件 "a2.py" 信息
statinfo = os.stat('a2.py')
print (statinfo)
执行以上程序输出结果为:
posix.stat_result(st_mode=33188, st_ino=3940649674337682L, st_dev=277923425L, st
_nlink=1, st_uid=400, st_gid=401, st_size=335L, st_atime=1330498089, st_mtime=13
30498089, st_ctime=1330498089)
正如你上面看到的,你可以直接访问到这些属性值。
好了,下面我来看看python中的stat模块,先看看自带的例子:
import os, sys
from stat import * def walktree(top, callback):
'''recursively descend the directory tree rooted at top,
calling the callback function for each regular file''' for f in os.listdir(top):
pathname = os.path.join(top, f)
mode = os.stat(pathname).st_mode
if S_ISDIR(mode):
# It's a directory, recurse into it
walktree(pathname, callback)
elif S_ISREG(mode):
# It's a file, call the callback function
callback(pathname)
else:
# Unknown file type, print a message
print 'Skipping %s' % pathname def visitfile(file):
print 'visiting', file if __name__ == '__main__':
walktree(sys.argv[1], visitfile)
可以这么理解,os.stat是将文件的相关属性读出来,然后用stat模块来处理,处理方式有多重,就要看看stat提供了什么了。
1. 可以对st_mode做相关的判断,如是否是目录,是否是文件,是否是管道等。
先看一下处理os.stat返回的st_mode结果的函数,就想上面的例子中的一样,这些函数可以做出判断:
if stat.S_ISREG(mode): #判断是否一般文件
print 'Regular file.'
elif stat.S_ISLNK (mode): #判断是否链接文件
print 'Shortcut.'
elif stat.S_ISSOCK (mode): #判断是否套接字文件
print 'Socket.'
elif stat.S_ISFIFO (mode): #判断是否命名管道
print 'Named pipe.'
elif stat.S_ISBLK (mode): #判断是否块设备
print 'Block special device.'
elif stat.S_ISCHR (mode): #判断是否字符设置
print 'Character special device.'
elif stat.S_ISDIR (mode): #判断是否目录
print 'directory.'
##额外的两个函数
stat.S_IMODE (mode): #返回文件权限的chmod格式
print 'chmod format.'
stat.S_IFMT (mode): #返回文件的类型
print 'type of fiel.'
2. 还有一些是各种各样的标示符,这些标示符也可以在os.chmod中使用,下面附上这些标示符的说明:
stat.S_ISUID: Set user ID on execution. 不常用
stat.S_ISGID: Set group ID on execution. 不常用
stat.S_ENFMT: Record locking enforced. 不常用
stat.S_ISVTX: Save text image after execution. 在执行之后保存文字和图片
stat.S_IREAD: Read by owner. 对于拥有者读的权限
stat.S_IWRITE: Write by owner. 对于拥有者写的权限
stat.S_IEXEC: Execute by owner. 对于拥有者执行的权限
stat.S_IRWXU: Read, write, and execute by owner. 对于拥有者读写执行的权限
stat.S_IRUSR: Read by owner. 对于拥有者读的权限
stat.S_IWUSR: Write by owner. 对于拥有者写的权限
stat.S_IXUSR: Execute by owner. 对于拥有者执行的权限
stat.S_IRWXG: Read, write, and execute by group. 对于同组的人读写执行的权限
stat.S_IRGRP: Read by group. 对于同组读的权限
stat.S_IWGRP: Write by group. 对于同组写的权限
stat.S_IXGRP: Execute by group. 对于同组执行的权限
stat.S_IRWXO: Read, write, and execute by others. 对于其他组读写执行的权限
stat.S_IROTH: Read by others. 对于其他组读的权限
stat.S_IWOTH: Write by others. 对于其他组写的权限
stat.S_IXOTH: Execute by others. 对于其他组执行的权限
例子:我想获得某个文件的属性信息,并查看他的权限信息,用chmod的格式显示出来。
复制代码
>>> import stat
>>> import os
>>> st = os.stat('sig.txt')
>>> mode = st.st_mode
>>> stat.S_IFMT(mode)
32768
>>> stat.S_IMODE(mode)
438
>>> print oct(stat.S_IMODE(mode))#oct 是转换为八进制
0666
Python3 os.stat() 方法的更多相关文章
- python3 os.path.realpath(__file__) 和 os.path.cwd() 方法的区别
python3 os.path.realpath(__file__) 和 os.path.cwd() 方法的区别 os.path.realpath 获取当前执行脚本的绝对路径. os.path.rea ...
- Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块
Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块 stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据 ...
- python多进程--------linux系统中python的os.fork()方法
linux下python 创建子进程的原理: os.fork()方法 的原理 为了实现并发.多任务,我们可以在主程序种开启一个进程或者线程.在类unix操作系统当中(非windows),可以用pyth ...
- 【转】Python3 操作符重载方法
Python3 操作符重载方法 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog.csdn.net/Rozol/article/details/70769628 以下代码 ...
- Python os.chdir() 方法
概述 os.chdir() 方法用于改变当前工作目录到指定的路径. 语法 chdir()方法语法格式如下: os.chdir(path) 参数 path -- 要切换到的新路径. 返回值 如果允许访问 ...
- Python os.access() 方法
概述 os.access() 方法使用当前的uid/gid尝试访问路径.大部分操作使用有效的 uid/gid, 因此运行环境可以在 suid/sgid 环境尝试. 语法 access()方法语法格式如 ...
- Python os.walk() 方法遍历文件目录
概述 os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下. os.walk() 方法是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 在Un ...
- Python os.popen() 方法
简述 就是新建一个管道执行一个命令. 方法是os.popen(命令,权限,缓冲大小) 比如 a = 'mkdir def' b = os.popen(a,) print b 就是等同于使用命令去创建了 ...
- Python入门之os.walk()方法
os.walk方法,主要用来遍历一个目录内各个子目录和子文件. os.walk(top, topdown=True, onerror=None, followlinks=False) 可以得到一个三元 ...
随机推荐
- HDU 1588 Gauss Fibonacci(矩阵快速幂)
Gauss Fibonacci Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- Android手机使用广播监听手机收到的短信
我们使用的Android手机在收到短信的时候会发出一条系统广播.该条广播中存放着接收到的短信的详细信息.本文将详细介绍如何通过动态注册广播来监听短信. 注册广播有两种方式,一种是动态注册,另一种是静态 ...
- Samsung_tiny4412(驱动笔记08)----jiffies,timer,kthread,workqueue,tasklet
/*********************************************************************************** * * jiffies,tim ...
- linux fdisk tf卡分区操作解析说明
/***************************************************************************** * linux fdisk tf卡分区操作 ...
- Gym - 101550A Artwork (并查集在线做法)
题目链接 题意:给你一个n*m的网格图,初始时格点全白,每次可以将一段连续的格点涂黑.求出每次操作之后白色连通块的数量. 看了看网上的题解,基本全是离线的做法.其实这道题是有在线的做法的,利用了对偶图 ...
- Linux配置python和pip环境
CentOS: 1.首先安装EPEL扩展源: yum install -y epel-release 2.系统自带python2,所以只需安装python3 yum install -y python ...
- 20155316 2016-2017-2 《Java程序设计》第5周学习总结
教材学习内容总结 这周总结 try catch语法 异常继承结构 throw finally AutoCloseable接口 Collection Map Lambda表达式 上周总结 三个关键 类与 ...
- .NET 之 垃圾回收机制GC
一.GC的必要性 1.应用程序对资源操作,通常简单分为以下几个步骤:为对应的资源分配内存 → 初始化内存 → 使用资源 → 清理资源 → 释放内存. 2.应用程序对资源(内存使用)管理的方式,常见的一 ...
- shell 命令学习
https://blog.csdn.net/mnmlist/article/details/55215158
- vulcanjs 包类型
npm 添加在pacakge.json 文件中的 meteor core 包 由meteor 框架提供的 meteor remote 包 从包服务器加载的,使用username:package 格式组 ...