我在一个目录中有三个文本文件,其中两列数据由一个制表符(\t
)分隔。你知道吗
我想取三个不同文本文件的同一列中三个数字的平均值。我所关心的数字在第二列或制表符之后(在列表中它将位于位置1)。然后我想输出一个文件,其中第1列的所有内容都被复制(它们是相同的文本),第2列的内容是相应行的平均值。你知道吗
这就是我目前所拥有的:我从另一个堆栈溢出问题得到了这段代码,但它不会遍历3个不同的文件。你知道吗
谢谢你!你知道吗
import sys
allfiledata = []
filenames = sys.argv[1:]
for filename in filenames:
rows = []
with open (filename, "r") as filehandle:
for line in filehandle:
rows.append( line.split() )
allfiledata.append( rows )
print " ".join(allfiledata[0][0]) # column headers
for i1,columns in enumerate(allfiledata[0][1:]):
print columns[0],
for i2,value in enumerate(columns[1:]):
total = 0
for filedata in allfiledata:
total = int(filedata[i1+1][i2+1]) + total
print int(float(total)/len(allfiledata)+0.5),
print
我的文本文件如下所示:
文件1.txt
AAA 4
AAB 5
AAC 0
AAD 1
文件2.txt
AAA 4
AAB 5
AAC 0
AAD 1
文件3.txt
AAA 4
AAB 5
AAC 0
AAD 1
注意:这些清单有上千种 我想取三个不同文件中的数字的平均值,就像这样,然后输出一个文件,其中包含复制的第一列和数字的平均值。你知道吗
编辑:如果您不使用python3并且希望以浮点形式获得结果,请不要忘记在脚本中添加
from __future__ import division
作为第一行代码。你知道吗相关问题 更多 >
编程相关推荐