[解決済み】Pythonを使ってディレクトリのサイズを計算する?
2022-04-02 04:02:43
質問
この特別な車輪を再発明する前に、誰かPythonを使用してディレクトリのサイズを計算するための素敵なルーチンを持っていますか?ルーチンは、Mb / Gbなどでうまくサイズをフォーマットしている場合は非常に素晴らしいことだ。
どのように解決するのですか?
サブディレクトリをすべて巡回し、ファイルサイズを集計します。
import os
def get_size(start_path = '.'):
total_size = 0
for dirpath, dirnames, filenames in os.walk(start_path):
for f in filenames:
fp = os.path.join(dirpath, f)
# skip if it is symbolic link
if not os.path.islink(fp):
total_size += os.path.getsize(fp)
return total_size
print(get_size(), 'bytes')
そして、お楽しみのワンライナーは os.listdir ( サブディレクトリを含めない ):
import os
sum(os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f))
参考
- os.path.getsize - サイズをバイト単位で表示します
- os.walk
- os.path.islink
更新情報 を使用するには os.path.getsize のように、os.stat().st_sizeメソッドを使用するよりも明確です。
ghostdog74さん、ご指摘ありがとうございました。
os.stat - st_サイズ サイズをバイト単位で表示します。 また、ファイルサイズやその他のファイル関連情報を取得するためにも使用できます。
import os
nbytes = sum(d.stat().st_size for d in os.scandir('.') if d.is_file())
2018年のアップデート
Python 3.4以前をお使いの場合は、より効率的な
walk
メソッドは、サードパーティの
scandir
パッケージを使用します。Python 3.5 以降では、このパッケージは標準ライブラリに組み込まれ
os.walk
は、それに見合った性能の向上を受けています。
アップデート2019
最近、私は
pathlib
が増えています。
pathlib
の解決策になります。
from pathlib import Path
root_directory = Path('.')
sum(f.stat().st_size for f in root_directory.glob('**/*') if f.is_file())
関連
-
python call matlab メソッドの詳細
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python call matlab メソッドの詳細
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み] データ型が理解できない
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み】ファイルサイズを人間が読めるようにする?