Python:关于换行符的帮助

4 投票
3 回答
7081 浏览
提问于 2025-04-16 00:41

我读取了一个用制表符分隔的文本文件,然后为每一行创建了一个列表。我接着从每个列表中取出第一个元素,然后把这个元素写入一个文件。下面是代码:

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个(最后一个)元素后面换行。但是我不知道该把换行符放在哪里。

3 个回答

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.

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。

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()
6

听起来你只是想在每一行之后加上它,所以把它放在循环的最后面,这个循环是用来遍历每一行的:

for row in z:
    print row[1:12]
    for i in row[1:12]:
        k.write(i+'\t')
    k.write('\n')

撰写回答