0

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

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

 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] The system cannot find the file specified: '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'

4

1 回答 1

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
于 2013-03-25T23:26:12.330 回答