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]システムは指定されたファイルを見つけることができません:'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 に答える