stat
系统调用时用来返回相关文件的系统状态信息的。
>>> import os
>>> print os.stat("/root/python/zip.py")
(33188, 2033080, 26626L, 1, 0, 0, 864, 1297653596, 1275528102, 1292892895)
>>> print os.stat("/root/python/zip.py").st_mode #权限模式
33188
>>> print os.stat("/root/python/zip.py").st_ino #inode number
2033080
>>> print os.stat("/root/python/zip.py").st_dev #device
26626
>>> print os.stat("/root/python/zip.py").st_nlink #number of hard links
1
>>> print os.stat("/root/python/zip.py").st_uid #所有用户的user id
0
>>> print os.stat("/root/python/zip.py").st_gid #所有用户的group id
0
>>> print os.stat("/root/python/zip.py").st_size #文件的大小,以位为单位
864
>>> print os.stat("/root/python/zip.py").st_atime #文件最后访问时间
1297653596
>>> print os.stat("/root/python/zip.py").st_mtime #文件最后修改时间
1275528102
>>> print os.stat("/root/python/zip.py").st_ctime #文件创建时间
1292892895
实际用法
total_size = os.stat(target_file_path).st_size #文件的大小,以位为单位
一、os.stat().st_size
os.stat(filePath) 返回读取指定文件的相关属性,然后利用 stat 模块进行处理。
import os
os.stat('data_feather_ys.feather')
# os.stat_result(st_mode=33206, st_ino=3659174697257342, st_dev=2829373452, st_nlink=1, st_uid=0, st_gid=0, st_size=400102338, st_atime=1631499025, st_mtime=1631499025, st_ctime=1631499025)
os.stat('data_feather_ys.feather').st_size
# 400102338
二、os.path.getsize()
返回指定文件的大小,当指定的路径不存在或者不可访问,将会抛出异常 os.error。实现形式:
def getsize(filename):
"""Return the size of a file, reported by os.stat()."""
return os.stat(filename).st_size
如果想达到性能最优,使用 os.stat() 先检查路径是否为文件,再调用 st_size 。
如果想要使用 os.path.getsize() ,则必须提前使用 os.path.isfile() 判断是不是文件,再使用。
三、函数封装
利用 os.path.getsize() 获取文件大小(单位:MB)。
import os
def get_FileSize(filePath):
filePath = str(filePath)
fsize = os.path.getsize(filePath)
fsize = fsize / float(1024 * 1024)
return round(fsize, 2)
print(get_FileSize('data_feather_ys.feather'))
total_size = os.stat(target_file_path).st_size #文件的大小,以位为单位(字节大小)