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

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

>>> import os
>>> print (os.stat("/root/python/zip.py"))
(33188, 2033080, 26626L, 1, 0, 0, 864, 1297653596, 1275528102, 1292892895)
>>> print (os.stat("/root/python/zip.py").st_mode)   #权限模式
33188
>>> print (os.stat("/root/python/zip.py").st_ino)   #inode number
2033080
>>> print (os.stat("/root/python/zip.py").st_dev)    #device
26626
>>> print (os.stat("/root/python/zip.py").st_nlink)  #number of hard links
1
>>> print (os.stat("/root/python/zip.py").st_uid)    #所有用户的user id
0
>>> print (os.stat("/root/python/zip.py").st_gid)    #所有用户的group id
0
>>> print (os.stat("/root/python/zip.py").st_size)  #文件的大小,以位为单位
864
>>> print (os.stat("/root/python/zip.py").st_atime)  #文件最后访问时间
1297653596
>>> print (os.stat("/root/python/zip.py").st_mtime)  #文件最后修改时间
1275528102
>>> print (os.stat("/root/python/zip.py").st_ctime)  #文件创建时间
1292892895

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

好了,下面我来看看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_modeif S_ISDIR(mode):# It's a directory, recurse into itwalktree(pathname, callback)elif S_ISREG(mode):# It's a file, call the callback functioncallback(pathname)else:# Unknown file type, print a messageprint ('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结果的函数,就想上面的例子中的一样,这些函数可以做出判断:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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

python基础教程: os.stat() 和 stat模块详解相关推荐

  1. Python基础教程:线程操作(oncurrent模块)详解

    进程是cpu资源分配的最小单元,一个进程中可以有多个线程. 线程是cpu计算的最小单元. 对于Python来说他的进程和线程和其他语言有差异,是有GIL锁. GIL锁 GIL锁保证一个进程中同一时刻只 ...

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

    stat 系统调用时用来返回相关文件的系统状态信息的. 首先我们看一下stat中有哪些属性: 正如你上面看到的,你可以直接访问到这些属性值. 好了,下面我来看看python中的stat模块,先看看自带 ...

  3. python的excell库_扣丁学堂Python基础教程之Excel处理库openpyxl详解

    扣丁学堂Python基础教程之Excel处理库openpyxl详解 2018-05-04 09:49:49 3197浏览 openpyxl是一个第三方库,可以处理xlsx格式的Excel文件.pipi ...

  4. python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...

    原标题:科多大数据之Python基础教程之Excel处理库openpyxl详解 科多大数据小课堂来啦~Python基础教程之Excel处理库openpyxl详解 openpyxl是一个第三方库,可以处 ...

  5. 《HTTP/2基础教程》协议、特性、详解

    文章目录 <HTTP/2基础教程>协议.特性.详解 前言 第一章 HTTP进化史 第二章 HTTP/2 快速入门 第三章 Web优化"黑魔法"的动机与方式 HTTP/1 ...

  6. python bisect_Python实现二分查找与bisect模块详解

    前言 其实Python 的列表(list)内部实现是一个数组,也就是一个线性表.在列表中查找元素可以使用 list.index()方法,其时间复杂度为O(n) .对于大数据量,则可以用二分查找进行优化 ...

  7. python的用途实例-Python基础之函数原理与应用实例详解

    本文实例讲述了Python基础之函数原理与应用.分享给大家供大家参考,具体如下: 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体 ...

  8. python基础实例-Python基础之字符串常见操作经典实例详解

    本文实例讲述了Python基础之字符串常见操作.分享给大家供大家参考,具体如下: 字符串基本操作 切片 # str[beg:end] # (下标从 0 开始)从下标为beg开始算起,切取到下标为 en ...

  9. python100例详解-Python基础之列表常见操作经典实例详解

    本文实例讲述了Python基础之列表常见操作.分享给大家供大家参考,具体如下: Python中的列表操作 列表是Python中使用最频繁的数据类型[可以说没有之一] 一组有序项目的集合 可变的数据类型 ...

  10. DIV+CSS基础教程:导航条的制作详解

    课程开始:       前三节课,我们知道了什么是"内容块状元素和内联元素",以及XHTML+CSS布局的核心概念"盒子模型",同时又学习了一下页面布局中两种方 ...

最新文章

  1. C# 出现System.TypeInitializationException类型初始值设定项引发异常
  2. QQ空间Python爬虫v2.0--点赞数据分析
  3. 使用 MSBuild 和 Windows Installer XML 执行自动发布(转)
  4. allowedExts php,通过php扩展增加一个内置函数
  5. Android环境搭建遭遇Unsupported major.minor version 52.0
  6. P1469 找筷子(python3实现)-- 10分
  7. 蘑菇街撸掉80%研发岗,产品竟然裁到只剩2个人?
  8. 神经网络入门回顾(感知器、多层感知器)
  9. 使用MSYS2编译64位gvim
  10. UML画图工具PlantUML与Visual Paradigm详解
  11. 影响力最大化算法——degreediscount以及python实现代码
  12. 被积函数中有x不能直接求导_解析变限积分函数的求导问题
  13. updating mysql.pid_MySQL启动报错-The server quit without updating PID file[FAILED]mysql/mysql.pid)...
  14. 腾讯实习生面试-笔试
  15. centos启动停留在started GNOME display manager
  16. WeUI实例(官方)
  17. 数据分析-Excel简介
  18. 2020年中国企业直播营销场景案例研究报告
  19. 【转】DDR3中的ODT
  20. 云计算厂商决战2020:虽分高下,但不决生死

热门文章

  1. 《Adobe Illustrator CS4中文版经典教程》—第0课0.11节将外观属性存储为图形样式...
  2. ActFrameWork集成Beetlsql的Mapper功能
  3. Memcached初探
  4. 2014恒生电子实习生笔试数据库部分
  5. 5个IO口扫描25个按键的解决方法(转帖)
  6. DIY走向高端化:用料成为比拼焦点
  7. 2007微软技术大会(TechEd)开幕式
  8. 【学习笔记】31、Python中的断言
  9. ABAP面向对象的开发
  10. 移动App的发展趋势