コード例 #1
0
    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
コード例 #2
0
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
コード例 #3
0
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()