8.4 stat--stat()函数的结果处理

本模块主要定义了一些常量和函数来处理os.stat()os.fstat()os.lstat()等函数返回的结果。如果想了解这些函数具体操作和意义需要参考你所在工作的系统平台函数:stat()fstat()lstat()

下面就是stat模块定义的一些函数来判断返回结果:

stat.S_ISDIR(mode) 

如果是目录返回非0值。

 

stat.S_ISCHR(mode) 

如果是字符类的设备文件返回非0值。

 

stat.S_ISBLK(mode) 

如果是块设备类的设备文件返回非0值。

 

stat.S_ISREG(mode) 

如果是一个常规的文件返回非0值。

 

stat.S_ISFIFO(mode) 

如果是FIFO管道返回非0值。

 

stat.S_ISLNK(mode) 

如果是一个符号连接返回非0值。

 

stat.S_ISSOCK(mode) 

如果是一个socket文件返回非0值。

 

stat.S_ISDOOR(mode) 

如果是一个Solaris door返回非0值。

 

stat.S_ISPORT(mode) 

如果是事件端口返回非0值。

 

stat.S_ISWHT(mode) 

如果是BSD whiteout返回非0值。

 

stat.S_IMODE(mode) 

返回可以使用os.chmod()函数设置的文件模式的一部分标志位。

 

stat.S_IFMT(mode) 

返回描述文件类型的部分标志位。

 

例子:

#python 3.4

import os, sys

from stat import *

 

def walktree(top, callback):

    '''递归遍历所有目录里所有文件'''

 

    for f in os.listdir(top):

        pathname = os.path.join(top, f)

        mode = os.stat(pathname).st_mode

        if S_ISDIR(mode):

            # 如果是目录递归进去

            walktree(pathname, callback)

        elif S_ISREG(mode):

            # 如果是一个文件打印输出

            callback(pathname)

        else:

            # 不认识的文件类型打印一个特别的输出

            print('Skipping %s' % pathname)

 

def visitfile(file):

    print('visiting', file)

 

if __name__ == '__main__':

    walktree('F:\\temp\\py', visitfile)

结果输出如下:

visiting F:\temp\py\bisect2.py

visiting F:\temp\py\cal_1.py

visiting F:\temp\py\chainmap1.py

visiting F:\temp\py\chainmap2.py

visiting F:\temp\py\closescreen.py

visiting F:\temp\py\codecs1.py

visiting F:\temp\py\complex1.py

visiting F:\temp\py\copy1.py

visiting F:\temp\py\datetimetz.py

visiting F:\temp\py\dec1.py

visiting F:\temp\py\difflib1.py

visiting F:\temp\py\difflib2.py

visiting F:\temp\py\difflib3.py

visiting F:\temp\py\difflib4.py

visiting F:\temp\py\difflib5.py

 

stat.filemode(mode) 

转换文件模式mode为一个可读取的字符串“-rwxrwxrwx.

 



蔡军生  QQ:9073204  深圳

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值