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包的五个简单准则简介
Jun 15 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
由面试题加深对Django的认识理解
Jul 19 Python
Python之指数与E记法的区别详解
Nov 21 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
Python urlencode和unquote函数使用实例解析
Mar 31 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 Python
Python接口测试数据库封装实现原理
May 09 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
Python爬虫之爬取某文库文档数据
Apr 21 Python
基于PyTorch实现一个简单的CNN图像分类器
May 29 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
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
详细讲解JS节点知识
2010/01/31 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
通过cmd进入python的实例操作
2019/06/26 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
2014年圣诞节倒计时网页的制作过程
2014/12/05 HTML / CSS
美国在线印刷公司:PsPrint
2017/10/12 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
2014年中班元旦活动方案
2014/02/14 职场文书
理发店策划方案
2014/06/05 职场文书
机电一体化专业求职信
2014/07/22 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
罚站检讨书
2015/01/29 职场文书
支行行长岗位职责
2015/02/15 职场文书
Oracle安装TNS_ADMIN环境变量设置参考
2021/11/01 Oracle