definitialize_file_positions(self): """初始化时,将所有.log文件的末尾指针位置存入字典""" for filename in os.listdir(self.log_directory): if filename.endswith('.log'): filepath = os.path.join(self.log_directory, filename) if os.path.isfile(filepath): self.last_position[filepath] = os.path.getsize(filepath)
defon_modified(self, event): """当文件被修改时触发""" # print("文件被修改:", event.src_path) ifnot event.is_directory and event.src_path.endswith('.log'): withopen(event.src_path, 'rb') as file: # 如果是第一次读取该文件,或者文件被截断(大小变小),重置读取位置 if event.src_path notin self.last_position or os.path.getsize(event.src_path) < self.last_position[ event.src_path]: file.seek(0, 2) self.last_position[event.src_path] = file.tell() print(file.tell()) else: file.seek(self.last_position[event.src_path], 0)