首页 > 解决方案 > Python3.8:将一个数据文件拆分为多个文件,所有文件均由文件中的关键字命名

问题描述

我有一个数据文件,每行开头都有一些关键词:

ATOM 145 HH11 ARG A 9 1.714 -4.146 -13.917 1.00 60.34 H
ATOM 146 HH12 ARG A 9 2.108 -5.132 -15.287 1.00 3.13 H
ATOM 147 HH21 ARG A 9 0.626 -2.990 -17.619 1.00 10.52 H
ATOM 148 HH22 ARG A 9 1.490 - 4.473 -17.392 1.00 13.53 H
TER 149 ARG A 9
型号 2
ATOM 1 N ARG A 1 0.642 -0.735 -0.097 1.00 2.52 N
ATOM 2 CA ARG A 1 1.593 -0.712 -1.202 1.00 73.00 AATOM 8 -3 CAT.3
A -2.452 1.00 65.25 摄氏度

我已通过以下方式拆分原始文件:

with open('abc.pdb', 'r') as file_in:
    with open('abc_models.pdb', 'w') as file_out:
        for line in file_in:
            if line.startswith('MODEL') or line.startswith('ATOM') or line.startswith('TER'):
                file_out.write(line)

现在我想把这个文件分成如下:

MODEL 1 ----> TER(将此模型命名为 1) MODEL 2 ----> TER(将此模型命名为 2)

谁能告诉我如何按照我的描述拆分这个文件?

标签: python-3.xfile

解决方案


with open('abc.pdb', 'r') as file_in:
    for line in file_in:    
        if line.startswith('MODEL'):
            file_out = open(f'abc_{line}.pdb', 'w')
        elif line.startswith('TER'):
            file_out.close()
        else:
            file_out.write(line)

推荐阅读