datetimeで簡単に前の日付を取得できる
import datetime
# daysで日付を指定する
date = datetime.datetime.now() - datetime.timedelta(days=3)
20211201
20211202
20211203
20211204
上記のような日付が名前となっているディレクトリがある場合でX日前のディレクトリを消すスクリプト
import datetime
import shutil
import os
import argparse
def get_target_dir_by_date(rootdir, delta_days):
result = {"isFound":False, "path":""}
date = datetime.datetime.now() - datetime.timedelta(days=delta_days)
target_dir_path = os.path.join(rootdir, date.strftime("%Y%m%d"))
if os.path.exists(target_dir_path):
result["path"] = target_dir_path
result["isFound"] = True
return result
def setup_args():
parser = argparse.ArgumentParser(description="日付がディレクトリ名になっている特定のディレクトリを消す")
parser.add_argument("targetdir")
parser.add_argument("deltadays", type=int)
args = parser.parse_args()
return args
def setup():
args = setup_args()
rootdir = args.targetdir
deltadays = args.deltadays
return {"rootdir": rootdir, "deltadays": deltadays}
if __name__ == "__main__":
setup_info = setup()
b = get_target_dir_by_date(setup_info["rootdir"], setup_info["deltadays"])
if b["isFound"]:
print("Delete the directory: %s"%b["path"])
res = shutil.rmtree(b["path"])