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.
实例:
代码语言:javascript复制from os import stat
statinfo =stat(r'C:UsersAdministratorDesktopD-A300.txt')
print (statinfo)#属性
print(statinfo.st_size) #大小字节
print('%.3f'%(statinfo.st_size/1024/1024))#大小M
输出结果:
代码语言:javascript复制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之类的函数。
代码语言:javascript复制#-*- coding:utf-8 -*- python3.6.3
from os import stat
import time
statinfo =stat(r'C:UsersAdministratorDesktopD-A300.txt')
print (statinfo)
print(time.localtime(statinfo.st_atime))
输出为:
代码语言:javascript复制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 获取请求链接下载文件的大小和文件特征
废话不多说,还只直接看代码吧!
代码语言:javascript复制###根据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 获取文件属性的方式(时间、大小等)就是小编分享给大家的全部内容了,希望能给大家一个参考。