このスクリプトをフォルダに置いて実行すると、指定ファイル以外のファイルを再帰的に削除します。
#!/usr/bin/python3 """ 指定したファイル名のファイル以外を再帰的に削除する 本スクリプトのあるフォルダ及びそのサブフォルダ内のファイルを削除する。 DATE VER NAME COMMENT 2020/12/01 0.00 garyo NEW """ import os import glob TARGET_FILE="para.dat" #削除せず残すファイル名 def pathJoin(path,filename): return (os.path.join(path,filename)) #ファイルリストを得る。pathの最後に"/"がないと一つ上のフォルダから返す def getFileList(path,filename): return (glob.glob(pathJoin(os.path.dirname(path) + "/**/",filename), recursive=True)) cnt = 0 notDeleteCnt = 0 flist = getFileList(os.getcwd() + "/","*.*") for item in flist: if item != __file__: #自分自身は消さない filename = os.path.basename(item) if filename.upper() != TARGET_FILE.upper(): os.remove(item) cnt = cnt + 1 else: #print(item) notDeleteCnt = notDeleteCnt + 1 print("DELETE:" + str(cnt) + " UNDELETE(" + TARGET_FILE + "):" + str(notDeleteCnt)) print("END")