gpt4 book ai didi

python - 在python中分析多个文件后生成一个输出文件

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:20 25 4
gpt4 key购买 nike

我有多个文件,每个文件包含 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

在这种情况下,输出文件必须这样写,它包含:

123 6  
111 12 #sum up count no. in case of similar value entry
0 7
45 5
22 2

我写了程序。对于单个文件分析,但我被困在质量分析部分。请帮忙。

最佳答案

from collections import Counter
import glob

out = open(filename,'w')
g_iter = glob.iglob('path_to_dir/*')
C = Counter()
for filename in g_iter:
f = open(filename,'r')
inp = f.read().strip().split('\n')
f.close()
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()

关于python - 在python中分析多个文件后生成一个输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10470436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com