我有多个文件,每个文件包含 8/9 列。
对于单个文件:我必须读取包含某个值的最后一列并计算每个值的出现次数,然后生成一个输出文件。
我已经这样做了:
inp = open(filename,'r').read().strip().split('\n')
out = open(filename,'w')
from collections import Counter
C = Counter()
for line in inp:
k = line.split()[-1] #as to read last column
C[k] += 1
for value,count in C.items():
x = "%s %d" % (value,count)
out.write(x)
out.write('\n')
out.close()
现在的问题是,如果我必须为一个输入生成一个输出,它工作正常。但是我需要使用glob.iglob
函数扫描一个目录,以便将所有文件用作输入。然后必须对每个文件执行上述程序以收集每个文件的结果,然后当然必须将每个文件的所有分析结果写入单个 OUTPUT 文件。
注意:在生成单个 OUTPUT 文件期间,如果发现任何值被重复,那么与其将相同的条目写入两次,不如仅对“计数”求和。例如分析第一个文件生成:
123 6
111 5
0 6
45 5
和第二个文件生成:
121 9
111 7
0 1
22 2
在这种情况下,OUTPUT 文件必须以包含以下内容的方式编写:
123 6
111 12 #sum up count no. in case of similar value entry
0 7
45 5
22 2
我已经写了编。对于单个文件分析,但我被困在质量分析部分。请帮忙。