写入文件

时间:2011-04-13 00:38:34

标签: python

我一直在尝试写一个文件,但它一直用逗号和两端的方括号写在一行上。如何在没有方括号,逗号和换行符的情况下为文件的每一行或每行写入文件。第6列必须按降序排列。

这是以下代码的输出:

[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 个答案:

答案 0 :(得分: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)