Mah*_*aal 12 python linux file-io
我在python脚本中做备份,但我需要获得以MB为单位创建的tar.gz文件的大小
我怎样才能获得该文件的MB大小
Mar*_*air 38
从您的问题中不清楚您是否想要压缩文件或未压缩文件的大小,但在前一种情况下,使用os模块中的os.path.getsize函数很容易
>>> import os
>>> os.path.getsize('flickrapi-1.2.tar.gz')
35382L
Run Code Online (Sandbox Code Playgroud)
要以兆字节为单位获得答案,您可以将答案右移20,例如
os.path.getsize('large.tar.gz') >> 20
Run Code Online (Sandbox Code Playgroud)
虽然该操作将以整数形式完成 - 如果您想保留一兆字节的分数,请(1024*1024.0)改为除以.(注意.0这样除数将是一个浮点数.)
更新:在下面的评论中,Johnsyweb指出了一个有用的方法,可以更一般地生成文件大小的人类可读表示.
为了获取文件大小(以 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"
Run Code Online (Sandbox Code Playgroud)
>>> get_size("k.tar.gz")
1.4MB
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21864 次 |
| 最近记录: |