linux 如何在python中获取tar.gz文件的大小(MB)

tf7tbtn2  于 2023-01-04  发布在  Linux
关注(0)|答案(5)|浏览(194)

我正在python脚本中执行备份,但需要获取创建的tar.gz文件的大小(MB)
我如何才能获得该文件的大小(MB

w7t8yxp5

w7t8yxp51#

从您的问题中并不清楚您是想要文件的压缩大小还是未压缩大小,但是在前一种情况下,使用os模块中的os.path.getsize函数很容易

>>> import os
>>> os.path.getsize('flickrapi-1.2.tar.gz')
35382L

要得到以兆字节为单位的答案,你可以将答案向右移动20,例如。

os.path.getsize('large.tar.gz') >> 20

尽管该操作将以整数形式完成--如果您希望保留兆字节的小数部分,则可以改为除以(1024*1024.0)(注意.0,这样除数将是浮点数)。

**更新:**在下面的注解中,Johnsywebproducing human readable representations of file sizes指出了一个更通用的有用方法。

6fe3ivhb

6fe3ivhb2#

为了获得文件大小(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
tkqqtvp1

tkqqtvp13#

使用os.stat()函数获取一个stat结构,其st_size属性是文件的大小(以字节为单位)。

xvw2m8pv

xvw2m8pv4#

根据Python在线文档,应该查看TarInfo对象的size属性。

pw136qt2

pw136qt25#

你可以使用下面的命令直接得到它,而不需要任何淡褐色

os.path.getsize('filename.tar') >> 20
print str(filename.tgz) + " MB"

相关问题