Pythonを使用してフォルダサイズと占有スペースサイズを取得
ファイルサイズと占有スペースは異なり、一般的に占有スペースは実際のサイズの1.1-1.4倍でしょう.
pythonでファイルサイズを検出する関数は、次のとおりです.
しかし、この方法ではファイルの占有スペースを取得することができず、特に小さなファイルが大量に含まれている場合、大きな差があります.
Linuxでは、shellを使用して正規表現と組み合わせてフォルダ占有サイズを取得します.サンプルコードは次のとおりです.
環境:Python 3.6.3
しかし、Pythonが持参した方法でファイルの占有サイズを見つけることはまだ分かりません.知っている仲間がいたら教えてください.
pythonでファイルサイズを検出する関数は、次のとおりです.
os.path.getsize(your_dir_path)
しかし、この方法ではファイルの占有スペースを取得することができず、特に小さなファイルが大量に含まれている場合、大きな差があります.
Linuxでは、shellを使用して正規表現と組み合わせてフォルダ占有サイズを取得します.サンプルコードは次のとおりです.
__author__ = 'weiran'
import os
import re
# 1MB
# du -sh ,
# :
# : , :GB, 2
# weiran 2018-7-24
def get_doc_usage_size_by_shell(doc_path):
response = os.popen(f'du -sh {doc_path}')
str_size = response.read().split()[0]
f_size = float(re.findall(r'[.\d]+', str_size)[0])
size_unit = re.findall(r'[A-Z]', str_size)[0]
if size_unit == 'M':
f_size = round(f_size/1024, 2)
if size_unit == 'T':
f_size = round(f_size*1024, 2)
return f_size
# ( :GB)
def get_doc_real_size(p_doc):
size = 0.0
for root, dirs, files in os.walk(p_doc):
size += sum([os.path.getsize(os.path.join(root, file)) for file in files])
size = round(size/1024/1024/1024, 2)
return size
環境:Python 3.6.3
しかし、Pythonが持参した方法でファイルの占有サイズを見つけることはまだ分かりません.知っている仲間がいたら教えてください.