これは機能するはずです:
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
と一致する場合はそのファイルを削除します。