使用python将文件行方式写入excel中的文本文件

时间:2014-02-05 07:47:39

标签: python excel

我有一个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完全不熟悉。

1 个答案:

答案 0 :(得分:0)

你在g-while结束时错过了换行符:

        with open(filename, 'w') as g:
            for value in computed_value :
                g.write("%s\t" % value)
            g.write('\n')

这将确保对于输入中的每一行,您在输出g中得到一行。