我有一个如下所示的文本文件;值以制表符分隔:
diamond orange pear loc1 . + 0.0 0.0 0.0 0.0 1.0 1.2 3.4
diamond orange pear loc2 . + 1.0 0.0 0.0 0.0 1.0 1.2 2.3
diamond orange pear loc3 . + 2.0 0.0 3.0 0.0 0.0 0.0 1.4
# ......
对于文件中的每一行,我要将前3个值的和除以后4个值的和。输出如下所示:
diamond orange pear loc1 . + 0
diamond orange pear loc2 . + 0.22
diamond orange pear loc3 . + 4.28
......
我想用python做这个。你知道吗
with open('/path/to/file/') as inFile:
inFile.next()
for line in inFile:
data = cols[6:]
data = map(float,data)
sum_3 = [sum[for x in x data[0:3]]
sum_last = [sum[for x in x data[4:7]]
average = sum_3/sum_last
这不管用,我希望能得到一些建议?你知道吗
您没有显示
cols
来自何处,但似乎您实际上并没有拆分每一行,在这种情况下,您只剩下一个字符串,您试图处理该字符串的字符,而没有前6个。将单个字符映射到浮点值并不能提供所需的数据。你知道吗接下来,
sum()
是一个函数,但是如果您使用索引语法,sum[...]
将抛出一个异常。您也不需要使用列表理解从片中获取值,只要sum(data[:3])
就可以了,只要片产生一个float
序列如果您有一个制表符分隔的文件,那么使用
csv
模块进行拆分可能是最简单的:我已经考虑到最后4个值都是零;在这一点上,您将被零除,并且您希望处理针对该情况抛出的异常。你知道吗
相关问题 更多 >
编程相关推荐