반응성 이미지 크기 관련해서 이래저래 삽질하다가 일반 플러그인으로 이전 사이즈 섬네일 삭제 하면 10개 지우는데 3초이상씩 소요시간에 짜증나서 파이선으로 해당 폴더 돌면서 썸네일 파일만 싹다 지우는 거 작성해봄.
(원래는 그냥 find 명령으로 삭제 할려고 했는데 이윤 잘 모르겠지만 정규식 테스트 사이트나 파이선에서도 작동하는 정규식으로 파일 찾아서 삭제하는거 해도 하나도 못찾음)
import os import re def search(dirname): try: filenames = os.listdir(dirname) for filename in filenames: full_filename = os.path.join(dirname, filename) if os.path.isdir(full_filename): search(full_filename) else: regex = re.compile(r'^.+-\d{2,4}x\d{2,4}\..+') mo = regex.search(full_filename) if mo != None: #print(mo.group()) if os.path.isfile(mo.group()): filePath = mo.group(0) #os.remove(filePath) print("deleted: "+filePath) #else: #print("") except PermissionError: pass search("/wp-content/uploads")
나중에 알았지만 워드프레스 이미지 추가할때 메타 정보로 썸네일 정보를 같이 기록하기 때문에 이렇게 지우면 DB에 쓰레기가 남는다는 단점이 있음 -_-;;;
하지만 썸네일 재생성할때 이미지 사이즈 변경하면 이전 이미지파일은 삭제 안되고 재생성하는 몇몇 플러그인이 있어서 어차피 재생성할때 DB 갱신되니 파일이라도 미리 지우면 나을듯.
os.remove 부분을 주석 처리 했는데 돌려보기 전에 경로라던지 잘 작동하는지 확인해보고 주석 지운담에 실행하라는 의미…
답글 남기기