Python 更改文件中的字符串字顺序

Python 更改文件中的字符串字顺序,python,python-2.7,biopython,Python,Python 2.7,Biopython,我有一个带有此类字符串的文件: gene_1 1 181 + 1 01 15.2689 b - - - gene_2 220 300 - 0 01 0.649993 b - - - gene_1 1 295 - 0 10 16.1465 b - - - gene_1 39 278 + 0 11 13.4122 b 28 33 -0.698805 gene_1 1 133 - 0

我有一个带有此类字符串的文件:

gene_1  1   181 +   1   01  15.2689 b   -   -   -
gene_2  220 300 -   0   01  0.649993    b   -   -   -
gene_1  1   295 -   0   10  16.1465 b   -   -   -
gene_1  39  278 +   0   11  13.4122 b   28  33  -0.698805
gene_1  1   133 -   0   10  13.9421 p   139 144 0.493777
我需要将第四列更改为第五列0和1中的+和-以获得下一列:

gene_1  1   181 1   +   01  15.2689 b   -   -   -
gene_2  220 300 0   -   01  0.649993    b   -   -   -
gene_1  1   295 0   -   10  16.1465 b   -   -   -
gene_1  39  278 0   +   11  13.4122 b   28  33  -0.698805
gene_1  1   133 0   -   10  13.9421 p   139 144 0.493777

有什么想法吗?

您可以按字符串读取文件,并按空格分隔每行:

your_rearranged_lines = []

with open("yourFile") as file:
    for line in file:
        splitLine = line.split()
        # stores the first three tokens as normal, switches the fourth and fifth,
        # and stores the remaining tokens as normal
        rearranged_line = splitLine[0:4] + splitLine[4] + splitLine[3] + splitLine[4:]
        your_rearranged_lines.append(rearranged_line)
实质上,此代码使用python的。基于上述示例,假设有两件事:

您的文件中没有任何带有必要空格的标记,例如gene 56 将每个破折号计算为标记的文件在每行中至少有五个标记。
如果前者不正确,您将分割应作为单个项目的令牌,如果后者不正确,您将遇到超出范围的异常。

您的代码在哪里,具体问题是什么?