def find_meta_data(self, path, *args): # initial setup path = self.get_file_path() + path dictionary = dict() for arg in args: dictionary[arg] = "" # read_file_line_by_line() with open(path) as file: for line in file: if line.startswith(";"): self.examine_line(dictionary, line, ",") else: file.close() break # self.__reverse_read_file() file = FileReadBackwards(path) for line in file: if line.startswith(";") and ":" in line: self.examine_line(dictionary, line, ":") else: file.close() break return dictionary
def read_log(entryType, nEntries): fo = FileReadBackwards(LOG_FILE_PATH, encoding="utf-8") entriesRead= 0 entries = [] for line in fo: entry_dict = log_entry_decode(line) if int(entry_dict['EntryID']) == entryType.value: entriesRead += 1 entries.append(entry_dict) if entriesRead == nEntries: break fo.close() return entries
def lee_archivo(archivo, lst, max_lineas=100, filtros=None, formato=None): """ Lee de manera inversa un máximo de líneas del archivo indicado aplicando filtros y un formato indicado. """ i = 0 try: frb = FileReadBackwards(archivo.strip(), encoding="utf-8") for l in frb: if not formato is None: l = linea_formato(l, formato) if i >= max_lineas: break if (filtros is None or len(filtros) == 0) or filtra_linea( filtros, l): lst.append(l + "\n") i += 1 except: pass finally: frb.close()