示例#1
0
def load_file(filename):
    """
    Loads an output file from rAdvisor into an ordered dictionary
    of read timestamp (int) -> LogEntry in the order of logging
    """

    entries = OrderedDict()
    metadata = None

    with open(filename, "r") as csvfile:
        yaml_lines = []
        # Skip the first yaml delimeter
        next(csvfile)

        # Load all lines until the end of the yaml section
        file_iter = peekable(csvfile)
        while not file_iter.peek().startswith("---"):
            yaml_lines.append(next(file_iter))
        # Skip the second yaml delimeter
        next(file_iter)

        # Load YAML to dictionary
        yaml_str = "\n".join(yaml_lines)
        yaml_loader = Loader(yaml_str)
        metadata = yaml_loader.get_data()

        csv_reader = csv.DictReader(file_iter)

        # skip header row
        next(csv_reader)

        preread = None
        try:
            for row in csv_reader:
                entry = LogEntry(row, entries=entries, preread=preread)
                entries[entry.read] = entry
                preread = entry.read
        except Error as e:
            print(e)
            print("An error ocurred. continuing...\n")

    return (entries, metadata)
def args_parser(path):
    with open(path) as f:
        setting=Loader(f)
    args=setting.get_data()
    return args