我想在python中以MB为单位测量单个文件的大小。
使用python:
def get_size_in_mb(filepath):
size_in_bytes = os.path.getsize(filepath)
size_in_mb = size_in_bytes // (1024*1024)
return size_in_mb
使用bash:
du -sh Ue3Amb-A-P0.mp4
第二种方法分别提供112
MB和前103
MB。
据我所知,基于这个答案的差异不能太大: python Mac OS : os.path.getsize returns different value than du -ks?
答案 0 :(得分:0)
文件可能具有扩展属性。这是与文件关联的其他数据,不是其正常数据的一部分。
正常数据的大小是由st_size
系统调用填充的struct stat
结构的stat()
字段所报告的大小。但是,文件的总大小(包括普通数据和扩展属性)都包含在st_blocks
字段中。
您可以阅读the source code for macOS's du
implementation。对于小于2TB的文件,它将使用文件的块大小。
我认为Python正在使用st_size
。
通过将ls -l@s
应用于文件,可以查看扩展属性的大小。