我有一个excel文件,如:
208324_at akp13_human 7 6.9 5.8 5 7 5.7
208325_s_at akp13_human 25.5 21.3 9.9 9 13.1 8.5
我必须找到每个值的日志并将其写入另一个文本文件。以下是代码:
import xlrd
from xlrd import open_workbook, XL_CELL_TEXT
import math
filename = "log_values.txt"
computed_value = []
i = 0
with open_workbook("log10wholetest.xlsx") as f:
sheet = f.sheet_by_index(0)
n = sheet.nrows
for i in range(0, n-1):
a = sheet.row_values(i)
b = map(float, a)
for line in b :
log = math.log10(float(line))
computed_value.append(log)
i += 1
with open(filename, 'w') as g:
for value in computed_value :
g.write("%s\t" % value)
这给了我一个文本文件,其结果如下所示:
2.55750720191 2.53995384166 2.21827285357
等等。 但我希望结果以行方式打印,因为文件row2的日志值应该从第二行(在结果文件中)开始,依此类推。 如果这是一个非常简单的问题,我很抱歉,但我对python完全不熟悉。
答案 0 :(得分:0)
你在g-while结束时错过了换行符:
with open(filename, 'w') as g:
for value in computed_value :
g.write("%s\t" % value)
g.write('\n')
这将确保对于输入中的每一行,您在输出g
中得到一行。