如何访问文件状态
来源:互联网 发布:开发java程序的一般步骤 编辑:程序博客网 时间:2024/06/05 20:12
实际案例
在某些项目中,我们需要获得文件状态,例如:
- 文件的类型(普通文件、目录、符号链接和设备文件等);
- 文件的访问权限;
- 文件的最后访问、修改和节点状态更改时间;
- 普通文件的大小;
……
解决方案:
- 系统调用:标准库中os模块下的三个系统调用stat,fstat,lstat获取文件状态;
- 快捷函数:标准库中os.path下一些函数,使用起来更加简洁。
系统调用
# -*- coding: utf-8 -*-import osimport statimport times = os.stat('test.txt')# 文件类型print stat.S_ISREG(s.st_mode)# 文件的执行权限print s.st_mode & stat.S_IXUSR# 文件的读权限print s.st_mode & stat.S_IRUSR# 文件的最后访问时间print time.localtime(s.st_atime)# 文件的最后修改时间print time.localtime(s.st_mtime)# 文件的节点状态更改时间print time.localtime(s.st_ctime)# 文件的大小print s.st_size
其运行结果为:
True0256time.struct_time(tm_year=2017, tm_mon=7, tm_mday=21, tm_hour=20, tm_min=23, tm_sec=52, tm_wday=4, tm_yday=202, tm_isdst=0)time.struct_time(tm_year=2017, tm_mon=7, tm_mday=21, tm_hour=20, tm_min=23, tm_sec=52, tm_wday=4, tm_yday=202, tm_isdst=0)time.struct_time(tm_year=2017, tm_mon=7, tm_mday=21, tm_hour=20, tm_min=23, tm_sec=52, tm_wday=4, tm_yday=202, tm_isdst=0)1769
快捷函数
# 文件的大小print s.st_size# 文件类型print os.path.isfile('test.txt')# 文件的最后访问时间print time.localtime(os.path.getatime('test.txt'))# 文件的最后修改时间print time.localtime(os.path.getctime('test.txt'))# 文件的节点状态更改时间print time.localtime(os.path.getmtime('test.txt'))# 文件的大小print os.path.getsize('test.txt')
注:os.path下没有获取文件权限的函数,因此只能使用系统调用方法来获取文件权限。
其运行结果为:
Truetime.struct_time(tm_year=2017, tm_mon=7, tm_mday=21, tm_hour=20, tm_min=23, tm_sec=52, tm_wday=4, tm_yday=202, tm_isdst=0)time.struct_time(tm_year=2017, tm_mon=7, tm_mday=21, tm_hour=20, tm_min=23, tm_sec=52, tm_wday=4, tm_yday=202, tm_isdst=0)time.struct_time(tm_year=2017, tm_mon=7, tm_mday=21, tm_hour=20, tm_min=23, tm_sec=52, tm_wday=4, tm_yday=202, tm_isdst=0)1769
阅读全文
0 0
- 如何访问文件状态
- python-19-如何访问文件的状态?如何使用临时文件?
- python 5-5 如何访问文件的状态os.stat()/os.path
- 如何随机访问文件
- 如何访问超长文件
- C#如何判断文件处于打开状态
- C#如何判断文件处于打开状态
- Ora-01135 DML/query访问的文件 处于脱机状态
- 如何访问局域网上的文件
- 如何访问局域网上的文件
- 如何访问局域网上的文件
- 如何通过ODBC访问excel文件
- Linux如何访问Windows共享文件
- Android如何修改系统文件访问权限
- 虚拟机下linux如何访问Windows文件
- 如何访问Jar包中的资源文件
- 如何访问web文件夹之外的文件
- 如何访问jar包的文件
- HDU 5950 Recursive sequence(构造矩阵+矩阵幂)——2016ACM/ICPC亚洲区沈阳站
- 同一进程中的线程究竟共享哪些资源
- 2080最长公共子序列问题
- VMware Workstation 与 Device/Credential Guard 不兼容
- Sklearn.cross_validation模块和数据划分方法
- 如何访问文件状态
- RSA 加密解密
- 优秀程序员无他-善假于物也
- OpenGL 按照三角形仿射变换并贴图渲染(基于shader)(二)
- Linux学习笔记之UBOOT
- SpringMVC的学习
- ceph bluestore Blob 分析
- form表单
- JS constructor探讨(二):再谈构造函数prototype.constructor的用途