如何访问文件状态

作者: SmallRookie | 来源:发表于2017-08-28 19:46 被阅读8次
实际案例

在某些项目中,我们需要获得文件状态,例如:

  1. 文件的类型(普通文件、目录、符号链接和设备文件等);
  2. 文件的访问权限;
  3. 文件的最后访问、修改和节点状态更改时间;
  4. 普通文件的大小;
    ......

解决方案:

  • 系统调用:标准库中os模块下的三个系统调用stat,fstat,lstat获取文件状态;
  • 快捷函数:标准库中os.path下一些函数,使用起来更加简洁。

系统调用

# -*- coding: utf-8 -*-

import os
import stat
import time

s = 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

其运行结果为:

True
0
256
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)
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下没有获取文件权限的函数,因此只能使用系统调用方法来获取文件权限。

其运行结果为:

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

相关文章

  • 如何访问文件状态

    实际案例 在某些项目中,我们需要获得文件状态,例如: 文件的类型(普通文件、目录、符号链接和设备文件等); 文件的...

  • Python高效编程(四)

    实际编程和面试都会遇到的典型问题。 如何读写文本文件 如何设置文件的缓冲 如何访问文件的状态 如何使用临时文件 如...

  • 5-5 如何访问文件的状态

    方法1,直接使用系统调用 os.stat显示文件状态 os.lstat不跟随符号链接,操作链接文件时使用os.fs...

  • 5-5 如何访问文件的状态?

    实际案例:在某些项目中,我们需要获得文件状态,例如: 文件的类型(普通文件,目录,符号连接,设备文件...) 文件...

  • zabbix监控服务器php

    1 修改php配置文件 2 修改nginx.conf的配置文件,通过Nginx访问PHP-FPM状态 3 访问测试...

  • 第十五章文件与流

    JAVA程序如何访问文件属性 java.io.File类 File类访问文件属性 java中的文件及目录处理类 1...

  • golang如何修改json文件内容

    golang如何修改json文件内容 使用一个例子说明golang如何访问和修改json文件;主要分三步: 从文件...

  • python高级编程技巧(8)

    一. 如何将文件映射到内存? 实际案例: 在访问某些二进制文件时。希望能把文件映射到内存中,可以实现随机访问。(f...

  • 如何在 Win10 中获取对文件和文件夹的完全访问权限

    如何在Windows 10中获取所有权并获得对文件和文件夹的完全访问权限 有时您需要完全访问Windows 10中...

  • python网页爬虫,实现url可访问性统计

    1、程序功能设计 从txt文件中读取url,通过request对象进行访问,获取请求的响应状态,统计url访问异常...

网友评论

    本文标题:如何访问文件状态

    本文链接:https://www.haomeiwen.com/subject/kvdxrxtx.html