写入文件

2 投票
1 回答
4582 浏览
提问于 2025-04-16 15:37

我一直在尝试把数据写入一个文件,但它总是把数据写成一行,中间用逗号隔开,前后还有方括号。我想知道怎么才能把数据写入文件,而不带方括号、逗号,也不想在每一行后面换行。而且,第六列的数据必须按降序排列。

下面是我代码的输出结果:

[NP_001026855.1, N, 1, YES, 96.4765%, 0.9823825] [NP_597716.1, D, 1, YES, 96.2573%, 0.9812865]

这是我的代码。

         lines = open("file.txt", "r").readlines()
         outfile = open("file2.txt",'w+')
         lines = [x.split() for x in lines]
         lines.sort(key=lambda x:x[5], reverse=True)
         for i in lines:
             outfile.writelines(i)

我想要的输出应该是:

NP_001026855.1 N 1 YES 96.4765% 0.9823825

NP_597716.1    D 1 YES 96.2573% 0.9812865

谢谢大家的帮助。

1 个回答

9

每个lines里的元素其实都是一个数组。你可以试试:

for i in lines:
    outfile.write(" ".join(i) + "\n")

.join()这个方法会把一个数组i里的所有元素用空格" "连接起来。然后,它会加上一个换行符"\n",这样你的输出就会分成不同的行。

另外,你甚至不需要保存所有分开的行的副本:

lines = open("file.txt", "r").readlines()
outfile = open("file.2txt", "w")
lines.sort(key=lambda x: x.split()[5], reverse=True)
for i in lines:
    outfile.write(i)

撰写回答