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

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)

附:月份缩写 -_-||

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 获取文件属性的方式(时间、大小等)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python查看文件大小和文件夹内容的方法

    一旦有办法处理文件路径,就可以开始搜集特定文件和文件夹的信息.os.path 模块提供了一些函数,用于查看文件的字节数以及给定文件夹中的文件和子文件夹. • 调用 os.path.getsize(path)将返回 path 参数中文件的字节数. • 调用 os.listdir(path)将返回文件名字符串的列表,包含 path 参数中的每个文件(请注意,这个函数在 os 模块中,而不是 os.path). 下面是我在交互式环境中尝试这些函数的结果: >>> os.path.getsize

  • Python之日期与时间处理模块(date和datetime)

    前言 在开发工作中,我们经常需要用到日期与时间,如: 作为日志信息的内容输出 计算某个功能的执行时间 用日期命名一个日志文件的名称 记录或展示某文章的发布或修改时间 其他 Python中提供了多个用于对日期和时间进行操作的内置模块:time模块.datetime模块和calendar模块.其中time模块是通过调用C库实现的,所以有些方法在某些平台上可能无法调用,但是其提供的大部分接口与C标准库time.h基本一致.time模块相比,datetime模块提供的接口更直观.易用,功能也更加强大.

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

    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. -

  • python3获取两个日期之间所有日期,以及比较大小的实例

    如下所示: import datetime #获取两个日期间的所有日期 def getEveryDay(begin_date,end_date): date_list = [] begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d") end_date = datetime.datetime.strptime(end_date,"%Y-%m-%d") while begin_date <=

  • Python比较2个时间大小的实现方法

    Python中有time和datetime,不过二者都直接取出日期和时间. 当需要比较2个时间的先后时,这两个类的函数都显得有些过于复杂.因为它们都带上了日期. 如果仅想比较时间,取出当前时间会带有日期信息,而指定比较的目标时间时还要给日期部分赋值.那个time_struct,一大堆的参数.赋值感觉很麻烦哦. 不用什么函数,直接将当前时间格式化成字符串然后转换成整数进行比较. 如下表示当前时间在09:35:10与15:01:01之间. 150101 > int(time.strftime("

  • 在keras 中获取张量 tensor 的维度大小实例

    在进行keras 网络计算时,有时候需要获取输入张量的维度来定义自己的层.但是由于keras是一个封闭的接口.因此在调用由于是张量不能直接用numpy 里的A.shape().这样的形式来获取.这里需要调用一下keras 作为后端的方式来获取.当我们想要操作时第一时间就想到直接用 shape ()函数.其实keras 中真的有shape()这个函数. shape(x)返回一个张量的符号shape,符号shape的意思是返回值本身也是一个tensor, 示例: >>> from keras

  • PHP高效获取远程图片尺寸和大小的实现方法

     PHP高效获取远程图片尺寸和大小的实现方法 在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正.写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有互补,只有分享,才能使彼此更加成长. 实现代码: /** * 获取远程图片的宽高和体积大小 * * @param string $url 远程图片的链接 * @param string $type 获取远程图片资源的方式, 默认为 curl 可选 fread * @param boolean $isGetF

  • js判断传入时间和当前时间大小实例(超简单)

    实例如下: //判断时间是否过期 function judgeTime(time){ var strtime = time.replace("/-/g", "/");//时间转换 //时间 var date1=new Date(strtime); //现在时间 var date2=new Date(); //判断时间是否过期 return date1<date2?true:false; } 以上这篇js判断传入时间和当前时间大小实例(超简单)就是小编分享给大家

  • JavaScript比较同一天的时间大小实例代码

    在项目开发的过程中,有时候会遇到同一天内的时间大小比较,一般来说选择时间是通过插件实现的,但并不排除客户要求手动输入的情况. 那么,在应客户要求手动输入时间,并且需要进行时间大小比较的时候该如何实现呢?以下简单介绍我实现的方法步骤: 1.首先,获取用户输入的内容: 2.验证时间格式是否正确: 3.比较两个时间的大小(整理了三种比较时间的方法,详情请查看以下代码): 4.返回结果. 以下为示例代码,仅做参考: 1.获取用户输入的两个时间,并将用户输入的冒号全部替换为半角冒号,方便后续操作: var

  • python3获取当前文件的上一级目录实例

    因为使用python+selenium有时候需要获取当前文件的上一级目录,找了一段时间找到了,在此记录下来: os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 这个是获取当前文件的上一级目录 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))  这个是把路径添加到系统的环境变量 os.path.abspath(os.path.

  • Python 获取ftp服务器文件时间的方法

    这个问题在网上找了很长时间,也没有很好的解决方案,大多数都是用的 ftp.retrlines('LIST',处理函数) 来获得文件的时间但是格式是 所以很难做成时间戳,获取时间的目的不就是用来比较, 所以下面个大家来个可以获取时间然后转化成时间戳的方式 首先函数 直接获取ftp文件的时间 然后我的做法是,先将时间转化成列表,然后做成时间元组,再用函数转化成时间戳. L = list(ftp.sendcmd('MDTM ' + "/home/tarena/%s/%s" % (files_

  • layui table表格数据的新增,修改,删除,查询,双击获取行数据方式

    layui table利用参数新增,修改,删除,查询,双击数据行获取本行数据等.模块化使用layui table表格,通过二次封装实现语法上的解耦使用layui table,使用参数就可以以及外部的方法调用即可实现对layui table表格的操作,通过封装,把更多自主权交给页面自定义,layui:v:2.3.0.感谢layui的作者贤心. 演示效果如下: 以上json显示不完整是录屏的原因,请见谅! var Table = function(ops){ this.dataList = [];

随机推荐