函数没有正确写入.xls。 Python 2.7.1

时间:2011-12-05 02:49:40

标签: python string function export-to-excel

当我检查我的Excel文件时,它只会写入一行数据,这是最后一次输入。

def Table(fn,fe):

       for fseq in fn:
              count=0
              for k in fseq:
                     if k=='G' or k=='C':
                            count=count+1
              percentage=(float(count)/len(fseq))*100
              fin=open(fe,'w')
              table=str(fseq)+'\t'+str(count)+'\t'+str(percentage)+'\n'
              fin.write(table)
       return fe



tablist=["AAUG","GCGA","AGCG","TCGA"]
fout=Table(tablist, 'abc.xls')

应该输出:

   AAUG    1   25.0
   GCGA    3   75.0
   AGCG    3   75.0
   TCGA    2   50.0

相反,我的输出如下:

   TCGA    2   50.0

并返回正在写入的文件的名称。

为什么只为字符串的最后一个元素写数据?

3 个答案:

答案 0 :(得分:1)

你的for循环遍历字符串,而不是每个字符串的字符。试试这个:

   for k in fn:
       for c in k:
          if c=='G' or c=='C':
                 count=count+1

(其他:没有必要。)

您还需要在外部循环中移动文件编写代码,以使报告正确(但在外部循环上方移开)。

答案 1 :(得分:0)

if k=='G' or k=='C':

您列表中的所有成员都不会符合此条件。因此,您的count仍为0

您可能希望遍历字符串中的字符。

答案 2 :(得分:0)

想出来。创建一个空String,然后将表的每个值添加到for循环中迭代期间创建的表中。写了字符串.xls文件