Python3: Каков наиболее эффективный способ обработки файлов с разделителями черт? - PullRequest
1 голос
/ 26 апреля 2020

Я пытаюсь написать что-то, что может анализировать txt файл, выглядит примерно так:

TOP1|TOP2|TOP3
Group1|Value2|Value3
Group2|Value2|Value3
TAIL1|TAIL2|TAIL3
  • TOP и TAIL всегда будут иметь одинаковую структуру Однако структура Group изменится. IE: у каждого файла есть свои группы, которые имеют свои значения.

  • Эти файлы имеют размер всего несколько килобайт каждый, и мне нужен способ масштабирования до 100 000+ / день синтаксического анализа файлов.

  • Я посмотрел на oop, но не уверен, излишне ли это для моего варианта использования.

Почему-то я чувствую, что использую простое: with open() не самый эффективный. Кроме того, я стараюсь избегать использования целочисленной индексации для получения атрибутов файлов.

В идеале я хочу сопоставить файл с Python Dict, а затем с классом Top, Tail клиента. У меня также есть класс Groups, который будет списком всех строк в файле под Group.

Структура описывается следующим образом: FILE --> [Top, [Group1, Group2], Tail].

Пока у меня есть это, но не подходит:

with open('file1.txt') as file:
    items = []
    for line in file:
        if not line.strip():
            continue
        d = {}
        data = line.split('|')
        print(data)
        for val in data:
            key, sep, value = val.partition(',')
            d[key.strip()] = value.strip()
        items.append(d)

1 Ответ

1 голос
/ 26 апреля 2020

Вы можете использовать pandas.read_csv(), чтобы прочитать файл, используя выбранный вами разделитель (в данном случае |).


import pandas as pd

df = pd.read_csv('file1.txt, sep="|", engine='python')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...