Попытка конвертировать текстовый файл в структуру данных - PullRequest
0 голосов
/ 16 февраля 2020

Мне нравятся эти текстовые данные как следующее содержание. Я пытаюсь преобразовать этот текст в структуру данных (Lists of dictionaries или list of lists) для обработки.

test.txt

0           1           1
3,1         3,1         3,1
5,0         5,1         5,0
6,1         6,0         6,0

Формат вывода такой:

   0     1      1
   ---------------
3| 1    1       1
5| 0    1      0
6| 1    0       0

Я много чего перепробовал, но, к сожалению, это не удалось.

1 Ответ

1 голос
/ 16 февраля 2020

Не знаю, нужна ли вам именно эта структура, но попробуйте следующее:

import collections

txt = """0           1           1
3,1         3,1         3,1
5,0         5,1         5,0
6,1         6,0         6,0"""

header = list(map(int,txt.splitlines()[0].split()))

output = collections.OrderedDict()
for line in txt.splitlines()[1:]:
    cols = line.split()
    row_num = int(cols[0].split(",")[0])

    vals = [(header[i],int(c.split(",")[1])) for i, c in enumerate(cols)]
    output[row_num] = vals

print(output)

Вывод:

OrderedDict([('3', [(0, 1), (1, 1), (1, 1)]), ('5', [(0, 0), (1, 1), (1, 0)]), ('6', [(0, 1), (1, 0), (1, 0)])])

Чтобы загрузить файл:

with open("file.txt") as f:
    txt = f.read()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...