【问题标题】:How to get the size of tar.gz in (MB) file in python如何在python中获取(MB)文件中tar.gz的大小
【发布时间】:2011-08-30 03:27:21
【问题描述】:

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

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

【问题讨论】:

标签: python linux file-io


【解决方案1】:

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

【讨论】:

  • (+1) 似乎比我的想法好得多(我最初认为 OP 也想评估 tar 文件中的内容)。
【解决方案2】:

根据 Python on-line docs,您应该查看 TarInfo 对象的 size 属性。

【讨论】:

  • @Mahakaal 它也适用于*.tar 文件(只需使用r 标志读取它,而不是将r:gz 传递给tarfile.open)。但是,它给出了 tar 文件中包含的每个元素的大小(虽然很容易总结),所以也许替代答案之一可能更适合您的需求。
【解决方案3】:

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

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

要获得以兆字节为单位的答案,您可以将答案右移 20,例如

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

虽然该操作将以整数形式完成 - 如果您想保留兆字节的小数部分,请改为除以 (1024*1024.0)。 (注意 .0 以便除数是浮点数。)

更新:在下面的 cmets 中,Johnsyweb 指出了一个更普遍的 producing human readable representations of file sizes 的有用配方。

【讨论】:

【解决方案4】:

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

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

【讨论】:

    猜你喜欢
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 2020-02-01
    相关资源
    最近更新 更多