如何在Python中获取tar.gz文件的大小(MB)
我正在用Python脚本做备份,但我需要知道生成的tar.gz文件的大小,单位是MB。
我该怎么才能得到这个文件的大小,单位是MB呢?
5 个回答
3
使用 os.stat()
这个函数可以获取一个文件的状态信息。这个状态信息里面有一个叫 st_size
的属性,它表示文件的大小,单位是字节。
7
为了获取文件的大小(以MB为单位),我写了这个函数:
import os
def get_size(path):
size = os.path.getsize(path)
if size < 1024:
return f"{size} bytes"
elif size < pow(1024,2):
return f"{round(size/1024, 2)} KB"
elif size < pow(1024,3):
return f"{round(size/(pow(1024,2)), 2)} MB"
elif size < pow(1024,4):
return f"{round(size/(pow(1024,3)), 2)} GB"
>>> get_size("k.tar.gz")
1.4MB
42
从你的问题中不太清楚你是想要文件的压缩大小还是未压缩大小,不过如果是想要压缩大小的话,可以很简单地使用 os.path.getsize
这个函数,来自 os模块。
>>> import os
>>> os.path.getsize('flickrapi-1.2.tar.gz')
35382L
如果你想把结果转换成兆字节(MB),可以把答案右移20位,比如:
os.path.getsize('large.tar.gz') >> 20
不过这个操作会用到整数,如果你想保留兆字节的小数部分,可以用 (1024*1024.0)
来除。记得加上 .0
,这样除数就会变成小数。
更新:在下面的评论中,Johnsyweb 提到了一种更通用的方法,可以生成更易读的文件大小表示。