Python - 获取文件使用的总字节数

时间:2013-03-25 23:06:48

标签: python file filesize filenotfoundexception

我正在尝试获取所有文件使用的总字节数。

到目前为止我得到的是以下内容。

 def getSize(self):
    totalsize = 0
    size = 0
    for root, dirs, files in os.walk(r'C:\\'):
        for files in files:
            size = os.stat(files).st_size
    totalsize = totalsize + size

但是,运行此命令时会弹出以下错误 FileNotFoundError:[WinError 2]系统找不到指定的文件:'hiberfil.sys'

有谁知道如何修复此错误并正确计算磁盘上的总字节数?

编辑:在看了这个之后,我想出了以下代码。

def getSize():
    print("Getting total system bytes")
    data = 0
    for root, dirs, files in os.walk(r'C:\\'):
        for name in files:
            data = data + getsize(join(root, name))
    print("Total system bytes", data)

但是我现在收到以下错误。 PermissionError:[WinError 5]访问被拒绝:'C:\\ ProgramData \ Microsoft \ Microsoft Antimalware \ Scans \ History \ CacheManager \ MpScanCache-1.bin'

1 个答案:

答案 0 :(得分:0)

这可能有所帮助:

import os
import os.path

def getSize(path):
    totalsize,filecnt = 0,0
    for root, dirs, files in os.walk(path): 
        for file in files:
            tgt=os.path.join(root,file)
            if os.path.exists(tgt): 
                size = os.stat(tgt).st_size
                totalsize = totalsize + size
                filecnt+=1
    return totalsize,filecnt

print '{:,} bytes in {:,} files'.format(*getSize('/Users/droid'))

打印:

110,058,100,086 bytes in 449,723 files

或者,如果是权限错误,请使用:

            try:
                size = os.stat(tgt).st_size
                totalsize = totalsize + size
                filecnt+=1
            except (#Permission Error type...): 
                continue