python_如何获取文件状态
案例:
在某项目中,需要获取文件状态,如:
- 文件的类型(普通文件、目录、符合连接、设备文件)
- 文件的访问权限
- 文件最后 访问、修改、节点状态 时间
- 普通文件大小
- ……
如何解决?
方法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_如何获取文件状态的更多相关文章
- fcntl 获取文件状态标志
int fcntl(int fd,int cmd,...) 函数fcntl提供了非常丰富的功能.主要依赖于cmd的各种参数: 复制已有的文件描述符 F_DUPFD,F_DUPFD_CLOEXEC 获取 ...
- C语言stat()函数:获取文件状态
相关函数:fstat, lstat, chmod, chown, readlink, utime 头文件:#include<sys/stat.h> #include<uninstd ...
- LINUX获取文件信息
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- Python-获取文件状态模块-os stat lastat fstat path
案例: 在某项目中,需要获取文件状态,如: 文件的类型(普通文件.目录.符合连接.设备文件) 文件的访问权限 文件最后 访问.修改.节点状态 时间 普通文件大小 -- 如何解决? 方法1:通过os原始 ...
- 安装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' 的 ...
- C#开发BIMFACE系列8 服务端API之获取文件上传状态信息
系列目录 [已更新最新开发文章,点击查看详细] 在BIMFACE控制台上传文件,上传过程及结束后它会自动告诉你文件的上传状态,目前有三种状态:uploading,success,failure ...
- linux编程fcntl获取和设置文件状态
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> ...
- Android 通过广播获取网络状态
Android系统网络连接状态的改变会发一个广播,注册一个广播接收者,实时动态的检测网络状态,及时提醒用户,优化用户体验. 本文仅提供WIFI 状态的检测作为参考,其他网络连接方式请 ...
- 【转】linux C++ 获取文件信息 stat函数详解
stat函数讲解 表头文件: #include <sys/stat.h> #include <unistd.h>定义函数: int stat ...
随机推荐
- window64 PHP ffmpeg详解简单上手 音频amr转mp3
从网上找了一大堆关于window 64 ffmpeg的信息,都是又长又不关键,让人难消化. 我只要简单的amr转MP3格式而已. 终于搞明白.自己总结了下! 希望能帮助到喜欢言简意赅,一眼上手的同学. ...
- git应用套路
git应用套路 一. 配置git别名 1.通过控制台命令vim ~/.gitconfig打开配置页面 2.配置如下内容: [user] name = your Name email = your E- ...
- 自学Aruba1.2-WLAN一些基本常识
点击返回:自学Aruba之路 自学Aruba1.2-WLAN一些基本常识 1. LAN.WAN.WLAN.WIFI术语 1.1 局域网(Local Area Network,LAN) 是指在某一区域内 ...
- ABAP开发人员未来应该学些什么
2007年1月我大学毕业进入SAP Chengdu从事开发工作,到今天已经整整11年了. 这张图在ABAP开发圈子里曾广为流传: 为了避免这种窘境发生在ABAPer身上,我们应该做点什么呢? 2017 ...
- faster-rcnn系列笔记(一)
目录: 1. 序言 2.正文 2.1 关于ROI 2.2 关于RPN 2.3 关于anchor 3. 关于数据集合制作 4. 关于参数设置 5. 参考 1.序言 叽歪一下目标检测这个模型吧,这篇笔 ...
- UML建模之时序图(Sequence Diagram)
一.时序图简介(Brief introduction) 二.时序图元素(Sequence Diagram Elements) 角色(Actor) 对象(Object) 生命线(Lifeline) 控制 ...
- Vijos P1127 级数求和【模拟】
级数求和 描述 已知:Sn= 1+1/2+1/3+…+1/n.显然对于任意一个整数K,当n足够大的时候,Sn大于K. 现给出一个整数K(1<=k<=15),要求计算出一个最小的n:使得Sn ...
- 配置web.xml文件用于配置tomcat
<Context path = "/myweb" docBase = "E:\workspace1\myweb\WebRoot" reloadable = ...
- rexray在CentOS上不能创建ceph rbd的docker volume问题定位
背景 我们通过docker的rexray插件来创建ceph rbd设备的docker volume,但总提示创建失败. # docker volume create --driver=rexray - ...
- HDU 2119 Matrix
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2119 解题思路: 处理数据,使用公式最小点覆盖数=最大匹配数,使用匈牙利算法求二分图最大匹配即可. ...