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 相关文章推荐
Python模块学习 filecmp 文件比较
Aug 27 Python
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
python列表操作实例
Jan 14 Python
Python格式化css文件的方法
Mar 10 Python
python如何查看系统网络流量的信息
Sep 12 Python
Django原生sql也能使用Paginator分页的示例代码
Nov 15 Python
Python反转序列的方法实例分析
Mar 21 Python
推荐10款最受Python开发者欢迎的Python IDE
Sep 16 Python
python如何给字典的键对应的值为字典项的字典赋值
Jul 05 Python
Python Selenium 之数据驱动测试的实现
Aug 01 Python
结合OpenCV与TensorFlow进行人脸识别的实现
Oct 10 Python
Python-OpenCV实现图像缺陷检测的实例
Jun 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
使用 php4 加速 web 传输
2006/10/09 PHP
php的curl封装类用法实例
2014/11/07 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
php图片添加水印例子
2016/07/20 PHP
php多线程并发实现方法
2016/09/30 PHP
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
2016/07/05 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
windows下安装python paramiko模块的代码
2013/02/10 Python
在Python中使用模块的教程
2015/04/27 Python
基于python的七种经典排序算法(推荐)
2016/12/08 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
python实现转圈打印矩阵
2019/03/02 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
医学生自荐信范文
2013/12/03 职场文书
国家励志奖学金获奖感言
2014/01/09 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
python编程实现清理微信重复缓存文件
2021/11/01 Python