일단 파일의 수정시간은 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시간 이상 된 것들을 찾아낼 수 있다.