我读了一个以制表符分隔的文本文件,然后我有一个每行的列表,我然后索引每个列表的第一个条目,然后我把它写入文件。代码如下:
import csv
z = csv.reader(open('output.blast'), delimiter='\t')
k = open('output.fasta', 'w')
for row in z:
print row[1:12]
for i in row[1:12]:
k.write(i+'\t')
当写入文件时,它将其写为一个长行,我希望在每个列表中的第11个(最后一个)条目之后启动一个新行。但我无法弄清楚在哪里放新线特征
答案 0 :(得分:6)
听起来你只想在每一行之后想要它,所以把它放在遍历行的for循环的末尾:
for row in z:
print row[1:12]
for i in row[1:12]:
k.write(i+'\t')
k.write('\n')
答案 1 :(得分:2)
如果您将其写回标签分隔格式,为什么不再使用csv包?
r = csv.reader(open('output.blast'),delimiter='\t')
outfile = open('output.fasta','w')
w = csv.writer(outfile,delimiter='\t')
w.writerows(row[1:12] for row in r)
outfile.flush()
outfile.close()
答案 2 :(得分:0)
import csv
z = csv.reader(open('output.blast'), delimiter='\t')
k = open('output.fasta', 'w')
for row in z:
print row[1:12]
for i in row[1:12]:
k.write(i+'\t')
k.write('\n ') # <- write out the newline here.