当我检查我的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
并返回正在写入的文件的名称。
为什么只为字符串的最后一个元素写数据?
答案 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文件