반응형

파일 이름을 날짜시간으로 지정한 후, 지정한 날짜보다 오래된 파일을 지우는 예제코드입니다. . 



2022. 11. 09  최초작성

2023. 01. 21  파일 삭제하는 것 까지 구현

2023. 03. 27  모듈 임포트 방법 변경 및 파일 삭제 코드 수정




아래 코드를 실행해보면 3개의 비교식에 대해 모두 True가 출력됩니다.

from datetime import datetime


# 기준 날짜시간입니다.
date_time_str = '20221109_065122_656'

# 기준날짜보다 오래된 날짜시간입니다.
date_time_old_str = '20221009_065122_656'

# 기준날짜보다 최근 날짜시간입니다.
date_time_new_str = '20221209_065122_656'

# 문자열로 된 날짜 시간을 datatime 타입으로 변환합니다.
date_time_obj = datetime.strptime(date_time_str, '%Y%m%d_%H%M%S_%f')
date_time_old_obj = datetime.strptime(date_time_old_str, '%Y%m%d_%H%M%S_%f')
date_time_new_obj = datetime.strptime(date_time_new_str, '%Y%m%d_%H%M%S_%f')

# 부등호를 사용하여 기준날짜시간 date_time_obj보다 이전 날짜시간인지 이후 날짜시간인지 파악이 가능합니다.
print(date_time_new_obj > date_time_obj)
print(date_time_old_obj < date_time_obj)
print(date_time_old_obj < date_time_new_obj)





10일 전 파일을 지워주는 예제입니다.

 

1. 테스트에 사용할 텍스트 파일을 생성하는 코드입니다. 현재 날짜(포스트에선 2023-03-27)를 기준으로 15일 전까지 텍스트 파일을 생성해줍니다. 





from datetime import datetime, timedelta


datetime_now = datetime.now()

for i in range(-15,1):
    datetime_before = datetime_now + timedelta(days=i)
    filename = datetime_before.strftime('%Y%m%d_%H%M%S_%f')

    f = open(filename+'.txt', 'w')
    f.close()
    print(filename)




2. 최근 10일치만 남겨두고 나머지는 삭제하는 코드입니다다.

 

다음처럼 현재 날짜(포스트에선 2023-03-27)를를 기준으로 10일치를 남겨두고고



나머지는 삭제합니다. 



import os
from datetime import datetime, timedelta


PATH = './'

for root, subdirs, files in os.walk(PATH):

    if len(files) > 0:
        for f in files:
            fullpath = root + '/' + f
           
            filename = f.split('.')[0]
            ext = f.split('.')[1]

            if ext != 'txt':
                continue

            date_time_obj = datetime.strptime(filename, '%Y%m%d_%H%M%S_%f')

            now = datetime.now()
            before_ten_day = now - timedelta(days=10)

            if date_time_obj < before_ten_day:
               
                if os.path.isfile(fullpath):
                    os.remove(fullpath)
                    print('del', fullpath)




반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts