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


Posted in Python onMarch 12, 2020

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

以上这篇Python3 获取文件属性的方式(时间、大小等)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python2.x版本中cmp()方法的使用教程
May 14 Python
Python自动发邮件脚本
Mar 31 Python
python利用lxml读写xml格式的文件
Aug 10 Python
python3将视频流保存为本地视频文件
Jun 20 Python
Python使用pymongo模块操作MongoDB的方法示例
Jul 20 Python
python numpy元素的区间查找方法
Nov 14 Python
python 实现矩阵填充0的例子
Nov 29 Python
Python实现图像去噪方式(中值去噪和均值去噪)
Dec 18 Python
python 解决flask 图片在线浏览或者直接下载的问题
Jan 09 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
Jun 03 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
Dec 11 Python
Python获取对象属性的几种方式小结
Mar 12 #Python
深入浅析Python 命令行模块 Click
Mar 11 #Python
python字典和json.dumps()的遇到的坑分析
Mar 11 #Python
解决pyecharts运行后产生的html文件用浏览器打开空白
Mar 11 #Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 #Python
django admin 添加自定义链接方式
Mar 11 #Python
django xadmin 管理器常用显示设置方式
Mar 11 #Python
You might like
文件系统基本操作类
2006/11/23 PHP
亲密接触PHP之PHP语法学习笔记1
2006/12/17 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
2015/12/09 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
django框架如何集成celery进行开发
2017/05/24 Python
python实现图书管理系统
2018/03/12 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
TensorFlow的权值更新方法
2018/06/14 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
python实现得到当前登录用户信息的方法
2019/06/21 Python
django-rest-framework解析请求参数过程详解
2019/07/18 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
Python执行时间的几种计算方法
2020/07/31 Python
CSS3教程:新增加的结构伪类
2009/04/02 HTML / CSS
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
房屋改造计划书
2014/01/10 职场文书
销售简历自我评价
2014/01/24 职场文书
交通安全寄语大全
2014/04/08 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
小学家长通知书评语
2014/12/31 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis