写入文件

use*_*646 2 python

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

这是以下代码的输出:

[NP_001026855.1, N, 1, YES, 96.4765%, 0.9823825] [NP_597716.1, D, 1, YES, 96.2573%, 0.9812865]
Run Code Online (Sandbox Code Playgroud)

这是我的代码.

         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)
Run Code Online (Sandbox Code Playgroud)

所需的输出应为:

NP_001026855.1 N 1 YES 96.4765% 0.9823825

NP_597716.1    D 1 YES 96.2573% 0.9812865
Run Code Online (Sandbox Code Playgroud)

谢谢你的贡献.

Gre*_*ill 9

中的每个元素lines本身的阵列.尝试:

for i in lines:
    outfile.write(" ".join(i) + "\n")
Run Code Online (Sandbox Code Playgroud)

.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)
Run Code Online (Sandbox Code Playgroud)