stat在python中_python os.stat() 和 stat模块详解

article/2025/10/8 15:36:08

stat 系统调用时用来返回相关文件的系统状态信息的。

首先我们看一下stat中有哪些属性:

正如你上面看到的,你可以直接访问到这些属性值。

好了,下面我来看看python中的stat模块,先看看自带的例子:

cb7bbd47f047e7fdc422e2fc347b5780.gif

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)

7e8d989c19933391aa67321dd13111ce.gif

可以这么理解,os.stat是将文件的相关属性读出来,然后用stat模块来处理,处理方式有多重,就要看看stat提供了什么了。

1.  可以对st_mode做相关的判断,如是否是目录,是否是文件,是否是管道等。

先看一下处理os.stat返回的st_mode结果的函数,就想上面的例子中的一样,这些函数可以做出判断:

b565b034c4e3f1ec124cfa5772d04e18.gif

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.'

2297d942a6f51b5f6a3c86e3a32f1762.gif

2.   还有一些是各种各样的标示符,这些标示符也可以在os.chmod中使用,下面附上这些标示符的说明:

e2a9cc7abad3f72346ebcc0fee83cbbf.gif

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. 对于其他组执行的权限

2dc50056716e2a45345d8dac774caaae.gif

例子:我想获得某个文件的属性信息,并查看他的权限信息,用chmod的格式显示出来。

464c395927f04ce78d8639d2c038d836.gif

>>> 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

67aaf518fcc25d692d1a1508fda9ac1d.gif


http://chatgpt.dhexx.cn/article/lLGJ4swN.shtml

相关文章

[UE4]Stat命令

说明 测试并优化你的游戏时,不可以避免用的要要那个到Stat命令。即专门针对显示游戏统计的控制台命令。 stat命令参考文档 要分析 虚幻引擎(UE) 项目,开发人员可以在使用 编辑器中运行(PIE) 模式运行游戏…

Linux系统调用六、stat函数与 struct stat 文件信息结构体深度刨析

🎁文章目录 🎈1. inode节点与硬链接🎈2. stat函数与 struct stat 结构体🎈3. stat函数实例分析及stat命令🎈4. 实现 ls -l filename命令🎈5. 穿透与非穿透 🎈1. inode节点与硬链接 通过上图可以…

Linux 应用编程之stat 函数

Linux 下可以使用 stat 命令查看文件的属性,其实这个命令内部就是通过调用 stat() 函数来获取文件属性的,stat 函数是 Linux 中的系统调用,用于获取文件相关的信息。(可通过"man 2 stat"命令查看)&…

pytorch stat

stat的作用是输出下面的参数 from torchstat import stat net FaceParseNet34(pretrainedTrue) stat(net, (3, 256, 256))

stat

stat 用于显示文件或者文件系统的状态 例如用stat grubaa64.efi 就可以看到文件的大小等信息

stat函数(stat、fstat、lstat)

#include <sys/types.h> #include <sys/stat.h> #include <unistd.h> //需包含头文件 有如下三个函数的函数原型&#xff1a; int stat(const char *path, struct stat *buf); 第一个形参&#xff1a;指出文件&#xff08;文件路径&#xff09;&…

stat函数

文章目录 (一)struct stat 结构体(二) st_mode 变量(三) struct timespec 结构体 Linux 下可以使用 stat 命令查看文件的属性&#xff0c;其实这个命令内部就是通过调用 stat()函数来获取文件属性的&#xff0c;stat 函数是 Linux 中的系统调用&#xff0c;用于获取文件相关的信…

Linux命令之stat命令

一、stat命令简介 stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。stat命令可以查看的信息包括&#xff1a; File&#xff1a;显示文件名Size&#xff1a;显示文件大小Blocks&#xff1a;文件使用的数据块总数IO Block&#xff1a;IO块大小r…

面经 - 计算机网络知识点

文章目录 资料协议层次应用层HTTP缓存机制强制缓存对比缓存 HTTP无状态Cookie & Sessioncookiesession DNS解析HTTP方法keep-alive和非keep-alive区别HTTP长连接和短连接HTTP方法GET和POST区别HTTP和HTTPS从地址栏输入URL到显示页面都发生了什么? HTTP3.0&#xff08;可靠…

计算机网络期末总复习知识点

概述 互联网的2个重要基本特点&#xff1a;连通性&#xff08;connectivity&#xff09;和资源共享&#xff08;sharing&#xff09;。端系统之间的两种通信方式&#xff1a;客户/服务器方式&#xff08;Client/Server方式、C/S方式&#xff09;、对等方式&#xff08;Peer to…

计算机网络基础知识点

1.网络介绍 由通信介质将地理位置不同、相互独立的计算机连接起来&#xff0c;实现数据和资源共享。 2.网络分类 2.1 按照拓扑结构分类 1.总线型 &#xff08;一根线上串好多计算机&#xff09;特点&#xff1a;两端信号终结器&#xff0c;分叉处有T型头 2.环形 网络效率…

计算机网络知识点总结-第一章:概述

1.计算机网络在信息时代的作用 互联网基本特点&#xff1a; 连通性&#xff1a;互联网上用户不管距离多远&#xff0c;都能通信&#xff0c;就像这些用户终端都彼此连通 共享性&#xff1a;指资源共享&#xff0c;包含信息、软件、硬件等共享&#xff0c;就像资源在用户身边 计…

计算机网络知识总结

目录 一&#xff1a;计算机网络分类 二&#xff1a;网络拓扑结构 三&#xff1a;ISO/OSI模型&#xff08;七层模型&#xff09; 四&#xff1a;五层模型 五&#xff1a;五层模型和七层模型对比 六&#xff1a;TCP/IP协议族 一&#xff1a;计算机网络分类 局域网&#xff…

计算机网络期末考试知识点汇总

一、TCP五层协议 1.体系结构 2.各层功能&#xff08;精简版&#xff09; 应用层:为应用程序提供各种功能&#xff0c;有各种协议表示层:数据格式转化&#xff0c;数据编码&#xff0c;解压&#xff0c;解密等会话层:建立&#xff0c;管理&#xff0c;维护会话&#xff0c;流量…

计算机网络知识整理-计算机网络概述(计算机网络入门参考指南)

第1章 计算机网络概述 1.1为什么要学习计算机网络 在当前的互联网时代&#xff0c;计算机网络已经成为了我国的一项重要的通信基础设施&#xff0c;无论是你是在校的计算机专业大学生&#xff0c;还是正在从事网络相关工作的从业人员&#xff0c;计算机网络的学习都是十分重要…

计算机网络知识点复习(适合春招面试复习)

计算机网络知识点 HTTP协议HTTP协议各版本之间的区别**HTTP1.0默认是短链接。****HTTP1.1默认持久连接。****HTTP2.0****HTTP3.0** HTTPS的过程HTTP是如何保存用户状态&#xff0c;Cookie和Session OSI体系结构TCP的三次握手和四次挥手三次握手四次挥手2MSL时间SYN泛洪攻击解决…

计算机网络知识点汇总(谢希仁 第七版)

目录 第一章 概述 重要内容 计算机网络的一些相关知识 互联网概述 因特网的标准化工作 互联网的组成 计算机网络的类别 计算机网络的性能指标 计算机网络的体系结构——-分层次的体系结构 第二章 物理层 重要内容 物理层的基本概念 数据通信的基本知识 信道复用技…

计算机网络知识点全面总结(有这一篇就够了!!!)

一、计算机网络概述 1.1 计算机网络的分类 按照网络的作用范围&#xff1a;广域网&#xff08;WAN&#xff09;、城域网&#xff08;MAN&#xff09;、局域网&#xff08;LAN&#xff09;&#xff1b; 按照网络使用者&#xff1a;公用网络、专用网络。 1.2 计算机网络的层次结…

计算机网络基本知识汇总

概述 OSI分层&#xff08;7层&#xff09; 物理层、数据链路层、网络层、运输层、会话层、表示层、应用层 TCP/IP分层&#xff08;4层&#xff09; 网络接口层、网络层、运输层、应用层 五层协议&#xff08;5层&#xff09; 物理层、数据链路层、网络层、运输层、应用层…