我有一个名为input.txt的文本文件,如下所示.

A C H E C Q D S S C H H C R Q K L E D T S C H L E D V G K M
N T Y H C G E G I N N G P N A S C K F M L P C V V A E F E N H T
E T D W R C K L E A E H C D C K D A A V N H H F Y S L C K D V T E E W

请注意,上面的输入有3行氨基酸序列.

我有一个名为input.txt的文本文件,如下所示.

A C H E C Q D S S C H H C R Q K L E D T S C H L E D V G K M
N T Y H C G E G I N N G P N A S C K F M L P C V V A E F E N H T
E T D W R C K L E A E H C D C K D A A V N H H F Y S L C K D V T E E W

请注意,上面的输入有3行氨基酸序列.

我想把它转换成下面的格式.

<|endoftext|>
ACHECQDSSCHHCRQKLEDTSCHLEDVGKM
<|endoftext|>
NTYHCGEGINNGPNASCKFMLPCVVAEFEN
HT
<|endoftext|>
ETDWRCKLEAEHCDCKDAAVNHHFYSLCKD
VTEEW

氨基酸序列的每个开头都应以字符串"&lt;|endofText|&gt;"开头 每条新品系的氨基酸不应超过30个.

我有这个代码,但它不能完成工作:

def process_amino_acids(file_name):
    with open(file_name, "r") as file:
        data = file.read().replace("\n", "").replace(" ", "")

    output = "<|endoftext|>"
    for i, amino_acid in enumerate(data):
        if i % 30 == 0 and i != 0:
            output += "\n"
        output += amino_acid
    return output


def main():
    input_file = "data/input.txt"
    processed_amino_acids = process_amino_acids(input_file)

    with open("data/output.txt", "w") as output_file:
        output_file.write(processed_amino_acids)

    print("Formatted amino acid sequences are written to output.txt")


if __name__ == "__main__":
    main()

它给出的输出是:

<|endoftext|>ACHECQDSSCHHCRQKLEDTSCHLEDVGKM
NTYHCGEGINNGPNASCKFMLPCVVAEFEN
HTETDWRCKLEAEHCDCKDAAVNHHFYSLC
KDVTEEW

我怎样才能用Python正确地完成它呢?

推荐答案

PYTHON附带电池,使用textwrap.wrap:

from textwrap import wrap

with (open('input.txt') as f,
      open('output.txt', 'w') as out
     ):
    for line in f:
        line = line.replace(' ', '')
        out.write('<|endoftext|>\n')
        out.write('\n'.join(wrap(line, width=30)))
        out.write('\n')

输出文件:

<|endoftext|>
ACHECQDSSCHHCRQKLEDTSCHLEDVGKM
<|endoftext|>
NTYHCGEGINNGPNASCKFMLPCVVAEFEN
HT
<|endoftext|>
ETDWRCKLEAEHCDCKDAAVNHHFYSLCKD
VTEEW

Python相关问答推荐

指示组内的rejected_time是否在creation_timestamp后5分钟内

Python中的函数中是否有充分的理由接受float而不接受int?

Chatgpt API不断返回错误:404未能从API获取响应

根据不同列的值在收件箱中移动数据

Odoo 14 hr. emergency.public内的二进制字段

如何在Python数据框架中加速序列的符号化

部分视图的DataFrame

形状弃用警告与组合多边形和多边形如何解决

当点击tkinter菜单而不是菜单选项时,如何执行命令?

Python导入某些库时非法指令(核心转储)(beautifulsoup4."" yfinance)

AES—256—CBC加密在Python和PHP中返回不同的结果,HELPPP

OpenGL仅渲染第二个三角形,第一个三角形不可见

计算空值

Polars Group by描述扩展

使用字典或列表的值组合

有没有办法让Re.Sub报告它所做的每一次替换?

在第一次调用时使用不同行为的re. sub的最佳方式

Python协议不兼容警告

Pandas数据框上的滚动平均值,其中平均值的中心基于另一数据框的时间

操作布尔值的Series时出现索引问题