函数未正确写入.xls。Python 2.7.1

函数未正确写入.xls。Python 2.7.1,python,string,function,export-to-excel,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(f

当我检查我的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
并返回正在写入的文件的名称


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

for循环在字符串上循环,而不是在每个字符串的字符上循环。试试这个:

   for k in fn:
       for c in k:
          if c=='G' or c=='C':
                 count=count+1
(else:不是必需的。)


您还需要将文件写入代码移动到外部循环内,以获得正确的报告(但将打开的代码移动到外部循环上方)。

for循环在字符串上循环,而不是在每个字符串的字符上循环。试试这个:

   for k in fn:
       for c in k:
          if c=='G' or c=='C':
                 count=count+1
(else:不是必需的。)

您还需要将文件写入代码移动到外循环的内部,以获得正确的报告(但将open移动到外循环的上方)

您列表中的任何成员都不会符合此条件。因此,您的
计数保持在
0

您可能希望循环字符串中的字符

您列表中的任何成员都不会符合此条件。因此,您的
计数保持在
0


您可能想在字符串中的字符上循环。

找到了答案。创建一个空字符串,然后将表的每个值添加到该字符串中,该值是在for循环的迭代过程中创建的。在.xls文件中写入字符串

并将其解决。创建一个空字符串,然后将表的每个值添加到该字符串中,该值是在for循环的迭代过程中创建的。将字符串写入.xls文件

请正确设置代码格式。为什么不使用?请正确设置代码格式。为什么不使用?它将9写入excel文件。我在意识到k是列表中的每个字符串后尝试了它。您还需要重新排列输出到文件中的代码。它需要在函数顶部打开一次,并在外部for循环中每次写入一次。它将9写入excel文件我在意识到k是列表中的每个字符串后尝试了它。您还需要重新排列输出到该文件的代码。它需要在函数顶部打开一次,并在外部for循环中每次写入一次。