私は多少Pythonには新しく、これを私自身で把握しようとしてきましたが、これまでのところ少ししか入手できませんでした。基本的に私は再帰的にディレクトリを検索するスクリプトを探しています、そして、それはサブディレクトリであり、少なくとも24時間古いですが、ディレクトリを変更しないファイルを削除します。 アドバイスや例がありがとうございます。Python - 古いファイルを削除する
おかげ
私は多少Pythonには新しく、これを私自身で把握しようとしてきましたが、これまでのところ少ししか入手できませんでした。基本的に私は再帰的にディレクトリを検索するスクリプトを探しています、そして、それはサブディレクトリであり、少なくとも24時間古いですが、ディレクトリを変更しないファイルを削除します。 アドバイスや例がありがとうございます。Python - 古いファイルを削除する
おかげ
あなたはそれを再帰的にすべてのディレクトリ内のすべてのファイルをチェックする必要がある場合は、このような何かを行うべき:
import os, time
path = "/path/to/folder"
def flushdir(dir):
now = time.time()
for f in os.listdir(dir):
fullpath = os.path.join(dir, f)
if os.stat(fullpath).st_mtime < (now - 86400):
if os.path.isfile(fullpath):
os.remove(fullpath)
elif os.path.isdir(fullpath):
flushdir(fullpath)
flushdir(path)
これは再帰的にディレクトリを検索するos.walkメソッドを使用しています。各ファイルについて、変更された日付をos.path.getmtimeでチェックし、それをdatetime.now(現在の時刻)と比較します。 datetime.timedeltaは、24時間のタイムデルタを作成するように構築されています。
スクリプトが呼び出されるときにカレントディレクトリであるディレクトリos.path.curdirを検索します。 dir_to_search
を別のものに設定することができます。スクリプトへのパラメータ。
import os
import datetime
dir_to_search = os.path.curdir
for dirpath, dirnames, filenames in os.walk(dir_to_search):
for file in filenames:
curpath = os.path.join(dirpath, file)
file_modified = datetime.datetime.fromtimestamp(os.path.getmtime(curpath))
if datetime.datetime.now() - file_modified > datetime.timedelta(hours=24):
os.remove(curpath)
あなたはこれまでに何を試みましたか、それは何が間違っていますか? – Mark
ビットとピースを見てみましょう、おそらく一緒に接着剤を助けることができますか? – Johnsyweb
ディレクトリを変更せずにディレクトリからファイルを削除することはできません。 –