Stack Overflowで次のPythonスクリプトが見つかりました。サブフォルダやファイルも削除するという再帰的な意味が必要であることを除いて、問題なく動作させることができます。どうやってやるの? os.walk(path)
代わりのos.listdir(path)
を使用してpythonを再帰的にスクリプトを削除するには?
#Import the required Python modules
import os
import time
import sys
#Set the folder path for deletion
path = r"c:\Delete"
#Set the time variable for "now" to subtract 30 days from "now."
now = time.time()
#Loop through the files in the path and delete any older than 30 days!
for f in os.listdir(path):
f = os.path.join(path, f)
if os.stat(f).st_mtime < now - 30 * 86400:
if os.path.isfile(f):
os.remove(os.path.join(path, f))
ようこそスタックオーバーフロー。タイトルに* recursive *という用語を使用しているので、あなたが投稿したトップレベルのコードを再帰的に使うことはできません。だから、私はそれに応じてそのコードをリファクタリングしてから、結果の関数に再帰を適用することから始めます。 –
@FrédéricHamidi:再帰関数を使用せずに再帰的ロジックを適用できます。しばしば彼らは一緒に行くが、必ずしもそうではない。この場合、再帰的に行う必要があるのはディレクトリトラバーサルです。 – Blckknght
@Blckknghtは、質問をどのように解釈するかによって異なります。とにかく、質問者はいずれかの方法で試してみる前にどのような再帰があるかを理解しなければなりません。 –