案例:

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

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

python_如何获取文件状态的更多相关文章

  1. fcntl 获取文件状态标志

    int fcntl(int fd,int cmd,...) 函数fcntl提供了非常丰富的功能.主要依赖于cmd的各种参数: 复制已有的文件描述符 F_DUPFD,F_DUPFD_CLOEXEC 获取 ...

  2. C语言stat()函数:获取文件状态

    相关函数:fstat, lstat, chmod, chown, readlink, utime 头文件:#include<sys/stat.h>  #include<uninstd ...

  3. LINUX获取文件信息

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  4. Python-获取文件状态模块-os stat lastat fstat path

    案例: 在某项目中,需要获取文件状态,如: 文件的类型(普通文件.目录.符合连接.设备文件) 文件的访问权限 文件最后 访问.修改.节点状态 时间 普通文件大小 -- 如何解决? 方法1:通过os原始 ...

  5. 安装sudo apt-get install ros-kinetic-desktop-full,报错mv: 无法获取'/var/lib/ni/licenses.xml.dpkg-old' 的文件状态(stat): 没有。。。。

    安装sudo apt-get install ros-kinetic-desktop-full,报了一堆错误 mv: 无法获取'/var/lib/ni/licenses.xml.dpkg-old' 的 ...

  6. C#开发BIMFACE系列8 服务端API之获取文件上传状态信息

    系列目录     [已更新最新开发文章,点击查看详细] 在BIMFACE控制台上传文件,上传过程及结束后它会自动告诉你文件的上传状态,目前有三种状态:uploading,success,failure ...

  7. linux编程fcntl获取和设置文件状态

    #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> ...

  8. Android 通过广播获取网络状态

    Android系统网络连接状态的改变会发一个广播,注册一个广播接收者,实时动态的检测网络状态,及时提醒用户,优化用户体验.          本文仅提供WIFI 状态的检测作为参考,其他网络连接方式请 ...

  9. 【转】linux C++ 获取文件信息 stat函数详解

    stat函数讲解 表头文件:    #include <sys/stat.h>             #include <unistd.h>定义函数:    int stat ...

随机推荐

  1. Mysql查询不为null值

    Mysql本以为查询不为null就是!=null可是结果查询出来什么都没有,后来才发现不为null应该是is not null ,为null应该是is null.

  2. 设计一个有getMin功能的栈(2)

    题目: 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作. 要求: 1.pop.push.getMin操作的时间复杂度都是O(1) 2.设计的栈类型可以输用现成的栈结构 解答 ...

  3. 【zkw费用流】[网络流24题]餐巾计划问题

    题目描述 一个餐厅在相继的N天里,第i天需要Ri块餐巾(i=l,2,-,N).餐厅可以从三种途径获得餐巾. (1)购买新的餐巾,每块需p分: (2)把用过的餐巾送到快洗部,洗一块需m天,费用需f分(f ...

  4. HTML知识点之表示强调的主要元素

    <h1>~<h6> 在HTML中,标题(Heading)元素共有6个级别的标签:<h1>~<h6>.它们都是块级元素.标题数字越小,字体就会越大,标题的 ...

  5. 【整理】REACT一些自己感觉需要记的东西

    REACT生命周期: 组件的生命周期可分成三个状态: Mounting:已插入真实 DOM Updating:正在被重新渲染 Unmounting:已移出真实 DOM 生命周期的方法有: compon ...

  6. echarts3 中 热力图的属性大全

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  7. Python3基础1

    Python介绍及特点 发展史 Python 2 or 3? 安装Python3 Hello World程序 变量 用户输入 模块初识 .pyc是个什么? 数据类型初识 数据运算 表达式if ...e ...

  8. SRM13

    由于种种原因,好像出了点锅……? 好在问题不是很大. 得分比我估的要低啊. 木之本樱 计算几何送分题 就是叫你求一共有多少组四线共点,O(n^4)暴力可以过初.枚举两条线,求出交点之后求有多少条直线过 ...

  9. HDU 1312 Red and Black(DFS,板子题,详解,零基础教你代码实现DFS)

    Red and Black Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  10. [bzoj1717][Usaco2006 Dec]Milk Patterns 产奶的模式 (hash构造后缀数组,二分答案)

    以后似乎终于不用去学后缀数组的倍增搞法||DC3等blablaSXBK的方法了= = 定义(来自关于后缀数组的那篇国家集训队论文..) 后缀数组:后缀数组SA是一个一维数组,它保存1..n的某个排列S ...