如何从txt文件获取结果或将几个文件合并为一个文件?

时间:2019-02-17 16:04:47

标签: python r bash awk merge

我对结果文件有疑问。我有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 :(得分:1)

假设您有一个包含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

下面的代码收集数据并将其存储在dict中,其中每个键都指向值列表。根据此数据结构,您可以进行统计数据计算。

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]})