天天看點

python擷取檔案大小

python擷取檔案大小

# !/usr/bin/python3.4
# -*- coding: utf-8 -*-

import os


# 位元組bytes轉化kb\m\g
def formatSize(bytes):
    try:
        bytes = float(bytes)
        kb = bytes / 1024
    except:
        print("傳入的位元組格式不對")
        return "Error"

    if kb >= 1024:
        M = kb / 1024
        if M >= 1024:
            G = M / 1024
            return "%fG" % (G)
        else:
            return "%fM" % (M)
    else:
        return "%fkb" % (kb)


# 擷取檔案大小
def getDocSize(path):
    try:
        size = os.path.getsize(path)
        return formatSize(size)
    except Exception as err:
        print(err)


# 擷取檔案夾大小
def getFileSize(path):
    sumsize = 0
    try:
        filename = os.walk(path)
        for root, dirs, files in filename:
            for fle in files:
                size = os.path.getsize(path + fle)
                sumsize += size
        return formatSize(sumsize)
    except Exception as err:
        print(err)


if __name__ == "__main__":
    print(getDocSize("../detailhtml/20161103112313.html"))
    # 1006.142578kb
    print(getFileSize("../data/"))
    # 111.856756M