Как получить результаты из текстовых файлов или объединить несколько файлов в один? - PullRequest
0 голосов
/ 17 февраля 2019

У меня проблема с файлами результатов.У меня есть 103 ".txt" файлы.Все они содержат такие данные:

APSI:0.347
TC:0.130
CS:0.115
FI:0.375

Мне нужно вычислить статистику, но сначала мне нужно собрать все значения в одном файле.Лучший способ объединить все файлы и импортировать их в R или Python (на мой взгляд).Затем я создам фрейм данных, и его будет легко рассчитать.

Но я понятия не имею, как объединить файлы в один файл для достижения этого формата:

APSI:0.XXX, 0.FFFF, 0.FFTR...
TC:0.XXX, 0.GSFF, 0.XXXX...
CS:0.RRR, 0.CGGG, 0.TTTT...
FI:0.TTT, 0.RRTT, 0.RRRR...

Как это сделать?

1 Ответ

0 голосов
/ 17 февраля 2019

Предполагается, что у вас есть папка с 2 (например) файлами, которая выглядит следующим образом:

APSI:0.347
TC:0.130
CS:0.115
FI:0.375

И

APSI:0.56
TC:0.11
CS:0.12
FI:0.345
KK:0.1234

Приведенный ниже код собирает данные и сохраняет их вукажите, где каждая клавиша указывает на список значений.На основе этой структуры данных вы можете выполнять вычисления статистики.

import os
from collections import defaultdict

FILES_FOLDER = 'files'
data = defaultdict(list)
files = os.listdir(FILES_FOLDER)
for f in files:
    with open(os.path.join(FILES_FOLDER, f)) as input_file:
        lines = input_file.readlines()
        for line in lines:
            tmp = line.split(':')
            key = tmp[0]
            value = tmp[1]
            data[key].append(float(value))

print('Here is the merged data:')
print(data)

Вывод:

Here is the merged data:
defaultdict(<type 'list'>, {'CS': [0.115, 0.12], 'FI': [0.375, 0.345], 'APSI': [0.347, 0.56], 'KK': [0.1234], 'TC': [0.13, 0.11]})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...