python

[python] 특정 디렉토리 내의 파일 수정시각과 현재시각 비교하기

일단 파일의 수정시간은 os.path.getmtime() 으로 받아올 수 있는데, 이 결과값은 time 객체로 반환된다.

일반적으로 시간 비교에는 datetime 을 사용하므로, time 객체를 변환해줘야 함.

path_dir = os.getcwd()+path
    print(datetime.datetime.now())
    for s in os.listdir(path_dir) : 
        print(datetime.datetime.fromtimestamp(os.path.getmtime(path_dir+s)))
  • os.listdir() 함수로 특정 경로 내의 모든 파일목록을 받아옴
  • 각 파일에 대해 os.path.getmtime() 함수를 실행하여 수정시각을 받아옴
  • 그 다음, datetime.fromtimestamp() 를 사용하면 time 객체를 datetime 객체로 변환하여 비교하기 위해 사용할 수 있음.
def CheckFileDate():
    path_dir = os.getcwd()+path
    now = datetime.datetime.now()
    for s in os.listdir(path_dir) : 
        timediff = (now - datetime.datetime.fromtimestamp(os.path.getmtime(path_dir+s)))
        if ( timediff.seconds / 3600 ) > 1 :
            print(s+"is Older Than 1 Hour")
  • datetime 객체간 연산을 진행하여 시간 차이를 알아낼 수 있음 .
  • 반환된 결과값은 timedelta 타입
  • .seconds 로 timedelta의 초를 구할 수 있는데, 3600으로 나누어 시간값을 알아낼 수 있음.
  • 연산 결과는 숫자로 취급되어 1 과 비교가능

결과적으로, 파일의 수정시각이 현재시각보다 1시간 이상 된 것들을 찾아낼 수 있다.