案例:

       在某项目中,需要获取文件状态,如:

  1. 文件的类型(普通文件、目录、符合连接、设备文件)
  2. 文件的访问权限
  3. 文件最后 访问、修改、节点状态 时间
  4. 普通文件大小
  5. ……

如何解决?

       方法1:通过os原始接口,stat() , lstat(),fstat()

              stat()      文件所有属性

              lstat()     不查看链接文件类型

              fstat()     传入参数为文件描叙符

#!/usr/bin/python3

import os
import stat

s = os.stat('python.PNG')
print(s)
print(bin(s.st_mode))

# 判断文件是否为目录
print(stat.S_ISDIR(s.st_mode))

# 判断文件是否是普通文件
print(stat.S_ISREG(s.st_mode))

# 判断文件权限
# 可读,user,大于0为真
print(s.st_mode & stat.S_IRUSR)

# 可执行,user
print(s.st_mode & stat.S_IXGRP)

# 获取文件 访问、修改、节点状态 时间
import time

print(time.localtime(s.st_atime))
print(time.localtime(s.st_ctime))
print(time.localtime(s.st_mtime))

# 获取文件大小
print(s.st_size)

       方法2:os.path下的方法,更简洁

#!/usr/bin/python3

# os.path方法
import os

# 判断文件是否为目录
print(os.path.isdir('python.PNG'))

# 判断文件是否是普通文件
print(os.path.isfile('python.PNG'))


# 获取文件 访问、修改、节点状态 时间
import time

print(time.localtime(os.path.getatime('python.PNG')) )
print(time.localtime(os.path.getmtime('python.PNG')) )
print(time.localtime(os.path.getctime('python.PNG')) )

# 获取文件大小
print(os.path.getsize('python.PNG'))

相关文章:

  • 2022-12-23
  • 2021-11-17
  • 2021-05-21
  • 2022-02-05
  • 2022-12-23
  • 2021-12-10
  • 2021-10-17
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-29
  • 2022-12-23
  • 2021-06-09
  • 2021-11-08
  • 2021-06-06
  • 2022-12-23
相关资源
相似解决方案