メインコンテンツまでスキップ

Pythonでファイルをサイズ順に並べる方法

Pythonでファイルをサイズでソートする方法

以下は、Pythonでファイルをサイズでソートする方法のステップバイステップのチュートリアルです:

ステップ1:必要なモジュールをインポートする

まず、osモジュールとoperatorモジュールをインポートする必要があります。osモジュールは、オペレーティングシステムとのやり取りを行う方法を提供し、operatorモジュールはソートに便利な関数を提供します。

import os
import operator

ステップ2:ファイルサイズを取得するための関数を定義する

次に、ディレクトリパスを入力として受け取り、ファイル名とそのサイズをマッピングする辞書を返す関数を定義します。この関数は、os.path.getsize()メソッドを使用して各ファイルのサイズを取得します。

def get_file_sizes(directory):
file_sizes = {}
for filename in os.listdir(directory):
filepath = os.path.join(directory, filename)
if os.path.isfile(filepath):
file_sizes[filename] = os.path.getsize(filepath)
return file_sizes

ステップ3:ファイルサイズを取得し、ソートする

これで、get_file_sizes()関数を呼び出して特定のディレクトリのファイルサイズを取得できます。その後、sorted()関数を使用して、辞書をその値(ファイルサイズ)でソートすることができます。辞書のitems()メソッドをsorted()関数に渡し、keyパラメータをoperator.itemgetter(1)に設定することで、値でソートします。

directory_path = '/path/to/directory'
file_sizes = get_file_sizes(directory_path)
sorted_files = sorted(file_sizes.items(), key=operator.itemgetter(1))

sorted_files変数には、各タプルがファイル名と対応するサイズを表すリストが含まれています。リストはファイルサイズに基づいて昇順でソートされています。

ステップ4:ソートされたファイルサイズを表示する

ソートされたファイルサイズを表示するには、sorted_filesリストを繰り返し処理し、各ファイル名とそのサイズを表示します。

for file_name, file_size in sorted_files:
print(f'{file_name}: {file_size} bytes')

ファイルサイズをより人間に読みやすい形式(キロバイトやメガバイトなど)で表示するなど、必要に応じてprint文を変更できます。

以上です!Pythonでファイルをサイズでソートすることに成功しました。