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中的进程分支fork和exec详解
Apr 11 Python
Python psutil模块简单使用实例
Apr 28 Python
python 第三方库的安装及pip的使用详解
May 11 Python
Python编程实战之Oracle数据库操作示例
Jun 21 Python
python学生信息管理系统
Mar 13 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
Sep 16 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
Dec 02 Python
pycharm 2018 激活码及破解补丁激活方式
Sep 21 Python
python线性插值解析
Jul 05 Python
python时间time模块处理大全
Oct 25 Python
Django 实现图片上传和下载功能
Dec 31 Python
如何用 Python 处理不平衡数据集
Jan 04 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
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
一篇入门的php Class 文章
2007/04/04 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
由Javascript实现的页面日历
2011/11/04 Javascript
javascript控制在光标位置插入文字适合表情的插入
2014/06/09 Javascript
函数window.open实现关闭所有的子窗口
2015/08/03 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
VSCode launch.json配置详细教程
2020/06/18 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
python 判断一个进程是否存在
2009/04/09 Python
Python批量查询关键词微信指数实例方法
2019/06/27 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
社区平安建设汇报材料
2014/08/14 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
python操作xlsx格式文件并读取
2021/06/02 Python
如何使用PyCharm及常用配置详解
2021/06/03 Python
nginx内存池源码解析
2021/11/20 Servers
JavaScript流程控制(循环)
2021/12/06 Javascript
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript
基于docker安装zabbix的详细教程
2022/06/05 Servers