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

新手上路,请多包涵

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

我如何获得该文件的大小(以 MB 为单位)

原文由 Mahakaal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 861
2 个回答

从你的问题中不清楚你是想要文件的压缩大小还是未压缩大小,但在前一种情况下, 使用 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 指出了一个有用的方法,可以更普遍地 生成人类可读的文件大小表示

原文由 Mark Longair 发布,翻译遵循 CC BY-SA 3.0 许可协议

为了以 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

原文由 jak bin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题