我正在python脚本中执行备份,但需要获取创建的tar.gz文件的大小(MB)我如何才能获得该文件的大小(MB
w7t8yxp51#
从您的问题中并不清楚您是想要文件的压缩大小还是未压缩大小,但是在前一种情况下,使用os模块中的os.path.getsize函数很容易
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,这样除数将是浮点数)。
(1024*1024.0)
.0
**更新:**在下面的注解中,Johnsyweb为producing human readable representations of file sizes指出了一个更通用的有用方法。
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
tkqqtvp13#
使用os.stat()函数获取一个stat结构,其st_size属性是文件的大小(以字节为单位)。
os.stat()
st_size
xvw2m8pv4#
根据Python在线文档,应该查看TarInfo对象的size属性。
TarInfo
size
pw136qt25#
你可以使用下面的命令直接得到它,而不需要任何淡褐色
os.path.getsize('filename.tar') >> 20 print str(filename.tgz) + " MB"
5条答案
按热度按时间w7t8yxp51#
从您的问题中并不清楚您是想要文件的压缩大小还是未压缩大小,但是在前一种情况下,使用os模块中的
os.path.getsize
函数很容易要得到以兆字节为单位的答案,你可以将答案向右移动20,例如。
尽管该操作将以整数形式完成--如果您希望保留兆字节的小数部分,则可以改为除以
(1024*1024.0)
(注意.0
,这样除数将是浮点数)。**更新:**在下面的注解中,Johnsyweb为producing human readable representations of file sizes指出了一个更通用的有用方法。
6fe3ivhb2#
为了获得文件大小(MB),我创建了这个函数:
tkqqtvp13#
使用
os.stat()
函数获取一个stat结构,其st_size
属性是文件的大小(以字节为单位)。xvw2m8pv4#
根据Python在线文档,应该查看
TarInfo
对象的size
属性。pw136qt25#
你可以使用下面的命令直接得到它,而不需要任何淡褐色