【Pythonサンプルコード】サブフォルダを含め、フォルダ内の総ファイルの総ファイルサイズを取得する方法
フォルダ内の総ファイル数と総ファイルサイズを把握する
レンタルサーバーなどではファイル数・ファイルサイズに上限が指定されているため、これらを把握することは重要です。
そしてそれらを把握するための機能は大抵のサーバーには付いていますが、リアルタイムで細かい情報を取得することは出来ないことが多いため、具体的にどこでどのファイルがどれぐらいの容量を圧迫しているのかを把握することはなかなか難しいです。
そこで今回はPythonを使って「サブフォルダを含め、フォルダ内の総ファイルの総ファイルサイズ」を取得し、エクセルファイルに書き出すサンプルコードをご紹介したいと思います。
サンプルコード
#サブフォルダを含め、総ファイル数・総サイズを取得する import pathlib import glob import pandas as pd def get_all_file(dir): p = pathlib.Path(dir) file_list=list(p.glob("**/*")) file_size=0 file_name_list=[] file_size_list=[] file_atime_list=[] file_mtime_list=[] for i in range(len(file_list)): #ファイルサイズの集計 file_size=file_size+file_list[i].stat().st_size #ファイル名・ファイルサイズのリスト化 file_name_list.append(file_list[i]) file_size_list.append(file_list[i].stat().st_size) file_atime_list.append(file_list[i].stat().st_atime) file_mtime_list.append(file_list[i].stat().st_mtime) #ファイル総数とファイル総サイズの表示 file_num=len(file_list) file_size_kb=file_size/1024 file_size_mb=file_size/1024/1024 print("files count:%s"%file_num) print("files size:%smb(%skb)"%(int(file_size_mb),int(file_size_kb))) #ファイル名とサイズをエクセルに書き出し all_list=[file_name_list, file_size_list, file_atime_list, file_mtime_list] df = pd.DataFrame(all_list,index=["ファイル名","ファイルサイズ","最終アクセス","最終更新"]) df.T.to_excel("all_file.xlsx", sheet_name="Sheet1") print("export .xlsx") #対象とするディレクトリを指定("./"は実行ファイルと同じディレクトリを指す get_all_file("./")
結果
解説
コードを実行するとファイル数とファイルサイズのサマリーが表示され、またファイル名・ファイルサイズが入ったエクセルファイルが生成されます。
エクセルの並べ替え機能を使うことでファイルを容量の大きい順・フォルダ名順などに並べ替えることができます。