繁体   English   中英

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

[英]How to get the size of tar.gz in (MB) file in python

我正在使用 python 脚本进行备份,但我需要获取以 MB 为单位创建的 tar.gz 文件的大小

如何获取该文件的 MB 大小

从您的问题中不清楚您想要文件的压缩大小还是未压缩大小,但在前一种情况下,使用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以便除数是一个浮点数。)

更新:在下面的评论中, Johnsyweb指出了一个有用的方法,可以更普遍地生成人类可读的文件大小表示

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

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

您可以使用以下命令直接获取它,无需任何榛子

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

为了获得以 MB 为单位的文件大小,我创建了这个函数:

import os

def get_size(path):
    size = os.path.getsize(path)
    if size < 1024:
        return f"{size} bytes"
    elif size < 1024*1024:
        return f"{round(size/1024, 2)} KB"
    elif size < 1024*1024*1024:
        return f"{round(size/(1024*1024), 2)} MB"
    elif size < 1024*1024*1024*1024:
        return f"{round(size/(1024*1024*1024), 2)} GB"
  
    >>>get_size("k.tar.gz")
    1.4MB

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM