python开发_stat

当我们使用os.stat(path)获取一个文件(夹)信息的时候, os.stat(path)本身返回的是一个元组如: nt.stat_result(st_mode=33206, st_ino=203224933185146561, st_dev=0,      st_nlink=1, st_uid=0, st_gid=0, st_size=21090, st_atime=1376373336,      st_mtime=1376534141, st_ctime=1376373336)

在这个元组中,包含了10个属性: st_mode -- protection bits(模式)     st_ino -- inode number(索引号)     st_dev -- device(设备)     st_nlink -- number of hard links(硬链接号)     st_uid -- user id of owner(用户id)     st_gid -- group id of owner (组id)     st_size -- size of file,in bytes (大小)     st_atime -- time of most recent access expressed in seconds (访问时间)     st_mtime -- time of most recent content modificatin expressed in seconds (修改时间)     st_ctime -- platform dependent;time of most recent metadata change on Unix,                      or the teime of creation on Windows,expressed in senconds (根据不同操作系统而定)

#############################################################     而stat在这里起到什么作用呢?     类似于java中定义的一些常量: 如: os.stat(path).st_size os.stat(path)[stat.ST_SIZE] 这两种表示方法是一样的。

下面是我做的demo:

运行效果:

==============================================

代码部分:

==============================================

 1 #python stat
 2 '''
 3     当我们使用os.stat(path)获取一个文件(夹)信息的时候,
 4     os.stat(path)本身返回的是一个元组如:
 5     
 6     nt.stat_result(st_mode=33206, st_ino=203224933185146561, st_dev=0,
 7     st_nlink=1, st_uid=0, st_gid=0, st_size=21090, st_atime=1376373336,
 8     st_mtime=1376534141, st_ctime=1376373336)
 9 
10     在这个元组中,包含了10个属性:
11     st_mode    -- protection bits(模式)
12     st_ino     -- inode number(索引号)
13     st_dev     -- device(设备)
14     st_nlink   -- number of hard links(硬链接号)
15     st_uid     -- user id of owner(用户id)
16     st_gid     -- group id of owner (组id)
17     st_size    -- size of file,in bytes (大小)
18     st_atime   -- time of most recent access expressed in seconds (访问时间)
19     st_mtime   -- time of most recent content modificatin expressed in seconds (修改时间)
20     st_ctime   -- platform dependent;time of most recent metadata change on Unix,
21                   or the teime of creation on Windows,expressed in senconds (根据不同操作系统而定)
22 
23     #############################################################
24     而stat在这里起到什么作用呢?
25     类似于java中定义的一些常量:
26     如:
27         os.stat(path).st_size
28         os.stat(path)[stat.ST_SIZE]
29         这两种表示方法是一样的。
30 '''
31 import os
32 import time
33 import stat
34 
35 def get_file_stat(path):
36     '''获取一个文件(夹)信息,该信息将以一个元组的形式返回'''
37     if os.path.exists(path):
38         return os.stat(path)
39     else:
40         print('the path [{}] is not exist!'.format(path))
41 
42 def print_info(file_stat):
43     '''打印信息'''
44     if file_stat != None:
45         file_info = {
46             'Size' : file_stat [ stat.ST_SIZE ],                         #获取文件大小
47             'LastModified' : time.ctime( file_stat [ stat.ST_MTIME ] ),  #获取文件最后修改时间
48             'LastAccessed' : time.ctime( file_stat [ stat.ST_ATIME ] ),  #获取文件最后访问时间
49             'CreationTime' : time.ctime( file_stat [ stat.ST_CTIME ] ),  #获取文件创建时间
50             'Mode' : file_stat [ stat.ST_MODE ],                         #获取文件的模式
51             'Device' : file_stat [stat.ST_DEV],                          #设备
52             'UserID' : file_stat [stat.ST_UID],
53             'GroupID' : file_stat [stat.ST_GID]
54             }
55         for key in file_info:
56             print('{} : {}'.format(key, file_info[key]))
57     else:
58         print('the stat is None!')
59 
60 def main():
61     path_dir = 'c:\\Download'
62     path_file = 'c:\\test.html'
63     print('目录信息:')
64     file_stat = get_file_stat(path_dir)
65     print_info(file_stat)
66     print('#' * 50)
67     print('文件信息:')
68     file_stat = get_file_stat(path_file)
69     print_info(file_stat)
70 
71 if __name__ == '__main__':
72     main()
73     

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP在线

拒绝重复造轮子,用composer搞自己的框架(2)

久负盛名的 CodeIgniter 框架是很多人的 PHP 开发入门框架,同样也是我开始学习如何从头构建一个网站的框架。在 CI中我学到了很多,其中对 MVC ...

3779
来自专栏difcareer的技术笔记

如何快速定位native方法在对应so中的位置前言原理

在逆向的时候,有些应用有一大堆的so,而且都是提前加载好,有的so甚至做了处理,很难看出函数名。本文讲述的方法可以快速定位:

972
来自专栏程序员宝库

linux 常用指令

1.查看目录下有什么文件信息 ls //list查看当前目录下有什么文件 ls -l或ls ll //list -list 通过详...

3128
来自专栏IT技术精选文摘

Nginx模块之Filter解析

过滤模块简介 执行时间和内容 过滤(filter)模块是过滤响应头和内容的模块,可以对回复的头和内容进行处理。它的处理时间在获取回复内容之后,向用户发送响...

2689
来自专栏coding

linux源码安装软件系列1

1823
来自专栏三木的博客

Make

###一、make的功能: make是一个用来维护程序模块关系和生产可执行文件的工具,他可以根据程序修改的情况重新编译链接生成的中间代码或最终的可执行文件。执行...

20310
来自专栏喵了个咪的博客空间

phalcon-入门篇2(HelloWord与PhalconTools)

#phalcon-入门篇2(HelloWord与PhalconTools)# ? 本教程基于phalcon2.0.9版本 ##前言## 先在这里感谢各位phal...

3748
来自专栏coder修行路

Python 并发编程(一)之线程

常用用法 t.is_alive() Python中线程会在一个单独的系统级别线程中执行(比如一个POSIX线程或者一个Windows线程) 这些线程将由操作系统...

2696
来自专栏Golang语言社区

Golang语言社区--【游戏服务器知识】多线程并发

引言:上篇文章说到了多进程并发式的服务端模型,如上一篇文章所述,进程的频繁创建会导致服务器不堪负载,那这一篇博客主要讲述的是线程模型和线程池的方式来提高服务端的...

3374
来自专栏Java后端技术

解决jetty7.0.pre5启动时报ClassNotFoundException: javax.interceptor.InvocationContext异常的问题

一.背景介绍:最近项目在使用maven命令行运行jetty服务器时出现ClassNotFoundException: javax.interceptor.Inv...

741

扫码关注云+社区

领取腾讯云代金券