我有多个文件,其中数据写在两列中,如下所示:
asp 1.88
gln 3.10
arg 0.99
his 1.11
以及
asp 0.99
gln 1.11
arg 0.08
his 0.01
等等。你知道吗
我要做的是将它们相加,然后写入一个新文件,如下所示:
asp 2.87
gln 4.21
arg 1.07
his 1.12
我尝试导入Counter
,但效果不好。我也试过这样:
inp = ('c"/users/ansm/desktop/xx.txt','r').read().strip().split('\n')
inp2 = ('c"/users/ansm/desktop/xyz.txt','r').read().strip().split('\n')
c = Counter(inp)
d = Counter(inp2)
print c+d
但这段代码并没有将这些值相加。你知道吗
有没有其他不使用Counter
的方法呢?
我使用glob.iglob
在文件夹中遍历.txt
格式的文件,然后希望对它们进行处理以获得上述结果。使用Counter
是最有效的方法还是其他方法更好?你知道吗
使用此构造创建计数器:
结果
c+d
将是:编辑许多文件:
您必须按如下方式在两个计数器中添加每个元素,因为原始计数器存储的是字符串而不是值的数字(注意
float()
转换):现在添加的值位于
r
。更简单的方法是在创建c
和d
时直接执行转换:现在它将按预期工作:
还要注意,读取文件的方式并不是最安全的:打开但从不关闭文件,更好的方法是使用
with open
,如下所示:使用defaultdict怎么样:
相关问题 更多 >
编程相关推荐