Python3 获取文件属性的方式(时间、大小等)

作者:X@B 时间:2022-05-06 09:13:41 

os.stat(path) :

用于在给定的路径上执行一个系统 stat 的调用。

path:

指定路径

返回值:

st_mode: inode 保护模式
-File mode: file type and file mode bits (permissions).
st_ino: inode 节点号。
-Platform dependent, but if non-zero, uniquely identifies the file for a given value of st_dev.
——the inode number on Unix,
——the file index on Windows
st_dev: inode 驻留的设备。
-Identifier of the device on which this file resides.
st_nlink:inode 的链接数。
-Number of hard links.
st_uid: 所有者的用户ID。
-User identifier of the file owner.
st_gid: 所有者的组ID。
-Group identifier of the file owner.
st_size:普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
-Size of the file in bytes, if it is a regular file or a symbolic link. The size of a symbolic link is the length of the pathname it contains, without a terminating null byte.
st_atime: 上次访问的时间。
-Time of most recent access expressed in seconds.
st_mtime: 最后一次修改的时间。
-Time of most recent content modification expressed in seconds.
st_ctime:由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。
st_atime_ns
-Time of most recent access expressed in nanoseconds as an integer
st_mtime_ns
-Time of most recent content modification expressed in nanoseconds as an integer.
st_ctime_ns
-Platform dependent:
——the time of most recent metadata change on Unix,
——the time of creation on Windows, expressed in nanoseconds as an integer.

实例:


from os import stat
statinfo =stat(r'C:\Users\Administrator\Desktop\1\4D-A300.txt')
print (statinfo)#属性
print(statinfo.st_size) #大小字节
print('%.3f'%(statinfo.st_size/1024/1024))#大小M

输出结果:


os.stat_result(st_mode=33206, st_ino=3659174697378650, st_dev=3993776408, st_nlink=1, st_uid=0, st_gid=0, st_size=3876301, st_atime=1541032563, st_mtime=1541033475, st_ctime=1541032563)

.697

我们看到,时间都是一些大的浮点数-时间戳(每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。)

从返回浮点数的时间辍方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。


#-*- coding:utf-8 -*- python3.6.3

from os import stat
import time
statinfo =stat(r'C:\Users\Administrator\Desktop\1\4D-A300.txt')
print (statinfo)
print(time.localtime(statinfo.st_atime))

输出为:


os.stat_result(st_mode=33206, st_ino=3659174697378650, st_dev=3993776408, st_nlink=1, st_uid=0, st_gid=0, st_size=3876301, st_atime=1541032563, st_mtime=1541033475, st_ctime=1541032563)
time.struct_time(tm_year=2018, tm_mon=11, tm_mday=1, tm_hour=8, tm_min=36, tm_sec=3, tm_wday=3, tm_yday=305, tm_isdst=0)

附:月份缩写 -_-||

Python3 获取文件属性的方式(时间、大小等)

time 模块的 strftime 方法来格式化日期

print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(statinfo.st_atime)))

结果:

2018-11-01 08:36:03

附:格式化符号

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X本地相应的时间表示
%Z 当前时区的名称
%% %号本身

补充知识:python 获取请求链接下载文件的大小和文件特征

废话不多说,还只直接看代码吧!


###根据url链接提取下载文件的大小特征和下载文件类型
def getRemoteFileSize(url, proxy=None):
 '''
 通过content-length头获取远程文件大小
 '''
 opener = urllib2.build_opener()
 if proxy:
   if url.lower().startswith('https://'):
     opener.add_handler(urllib2.ProxyHandler({'https' : proxy}))
   elif url.lower().startswith('http://'):
     opener.add_handler(urllib2.ProxyHandler({'http' : proxy}))
   else:
     opener.add_handler(urllib2.ProxyHandler({'ftp': proxy}))
 try:
   request = urllib2.Request(url)
   request.get_method = lambda: 'HEAD'
   response = opener.open(request)
   response.read()
 except Exception, e:
   # 远程文件不存在
   return 0, 0
 else:
   getfileSize = dict(response.headers).get('content-length', 0)
   filesize = round(float(getfileSize) / 1048576, 2)
   getContentType = dict(response.headers).get('content-type', 0)
   return filesize, getContentType

来源:https://blog.csdn.net/u014769180/article/details/83856475

标签:Python3,文件属性,时间,大小
0
投稿

猜你喜欢

  • python获取当前运行函数名称的方法实例代码

    2023-03-06 15:34:22
  • python判断列表的连续数字范围并分块的方法

    2021-01-18 12:04:19
  • ORACLE ORA-01653: unable to extend table 的错误处理方案(oracle报错)

    2024-01-15 12:24:10
  • 详解Python判定IP地址合法性的三种方法

    2021-12-02 14:35:10
  • 如何利用JSHint减少JavaScript的错误

    2024-05-28 15:37:40
  • Windows10下mysql 8.0.19 winx64安装教程及修改初始密码

    2024-01-26 11:03:37
  • Python函数之iterrows(),iteritems(),itertuples()的区别说明

    2021-02-12 13:28:06
  • php中数字、字符与对象判断函数用法实例

    2023-07-24 03:27:08
  • python+mysql实现简单的web程序

    2024-01-15 12:31:58
  • 解析array splice的移除数组中指定键的值,返回一个新的数组

    2023-11-18 09:51:28
  • 关于Python dict存中文字符dumps()的问题

    2022-08-22 17:53:17
  • vue3无法使用jsx的问题及解决

    2024-04-30 10:46:17
  • Django unittest 设置跳过某些case的方法

    2022-02-28 21:46:13
  • 详细讲解HTTP协议工作方式

    2022-01-08 11:55:59
  • Python如何实现文本转语音

    2022-12-23 09:49:22
  • 使用python判断jpeg图片的完整性实例

    2021-10-05 19:50:09
  • Python Sql数据库增删改查操作简单封装

    2024-01-22 14:47:37
  • ASP、PHP与javascript根据时段切换CSS皮肤的代码

    2008-09-01 17:26:00
  • 原生JS实现跑马灯效果

    2024-04-19 09:53:11
  • python散点图实例之随机漫步

    2021-01-19 21:05:58
  • asp之家 网络编程 m.aspxhome.com