これは機能するはずです:
from __future__ import print_function # => For Python 2.5 - 2.7
import os
def delete_files_with_size(dirname, size):
for root, _, files in os.walk(dirname):
for filename in files:
filepath = os.path.join(root, filename)
if os.path.getsize(filepath) == size:
print('removing {0}'.format(filepath))
os.remove(filepath)
あなたが言ったように、os.walkはこの種のもののために行く方法です。os.walkルートパス、ディレクトリのリスト、およびファイルのリストを含むタプルを返します。ディレクトリには関心がないため_、戻り値を解凍するときに従来の変数名を使用します。
os.path.joinファイル名自体にはパスが含まれていないため、とrootで使用できますfilename。os.path.getsizeはファイルのサイズを返し、サイズos.removeと一致する場合はそのファイルを削除します。