2021년 10월 4일 월요일

python 으로 만드는 파일 감시(파일이 변하였는지 감시하기) Monitor if a file has changed


파일이 변하였는지 검사하는 방법은 여러가지 있을 수 있습니다. win32 api를 이용한다거나 하는 방법도 생각해볼 수 있는데 여기에서는 쉽게 os에 의존적인 방법을 제외하고 공통적으로 쉽게 사용할 수 있는 폴링 방식을 구현하였습니다.

check_file_mod() 클래스를 만들게 되면 시간 정보를 저장하고 있다가 주기적으로 파일이 변경되었는지 확인 하는 함수 입니다.

변경되었으면 is_change()이 True를 넘겨 줍니다.

import time
import os

class check_file_mod(object):
	def __init__(self,want_to_checkfile):
		self.filename = want_to_checkfile
		self._cached_stamp = os.stat(self.filename).st_mtime

	def is_change(self):
		stamp = os.stat(self.filename).st_mtime
		if stamp != self._cached_stamp:
			self._cached_stamp = stamp
			return True
		return False


if __name__ == '__main__':
	wa = check_file_mod("_19_check_file_mod.py")
	while True:
		if wa.is_change():
			print("change")
		time.sleep(1)



댓글 없음:

댓글 쓰기