python错误地将列表写入文件

2024-04-25 07:17:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在将列表写入文件时遇到问题。我正在注释某些文件以将其更改为特定格式,因此我读取序列对齐文件,将其存储在列表中,进行必要的格式化,然后将其写入新文件。问题是,虽然我的列表(包含序列对齐)结构正确,但将它们写入新文件时产生的输出不正确(它不会复制我的列表结构)。我只包含了我的输出的一部分,以及它应该是什么样子,因为列表本身太长,无法发布。在

写入文件的输出:

>
TRFE_CHICK 

From XALIGN

MKLILCTVLSLGIAAVCFAAP (seq spans multiple lines) ...

ADYIKAVSNLRKCS--TSRLLEAC*> (end of sequence, * should be on a newline, followed by > on a newline as well)

输出应写成:

^{pr2}$

它会多次出现这种格式错误。我试过对列表进行酸洗和拆开处理,但那会使它更不符合格式。在

生成列表并写入文件的代码:

new = []
for line in alignment1:
    if line.endswith('*\n'):
        new.append(line.strip('*\n'))
        new.append('*')
   else:
        new.append(line)

new1 = []
for line in new:
    if line.startswith('>'):
        twolines = line[0] + '\n' + line[1:]
        new1.append(twolines)
        continue
    else:
        new1.append(line)

for line in new1:
     alignfile_annot.write(line)

基本上,我已经对它进行了编码,以便它读取对齐文件,在序列的末尾和*字符之间插入一行,而且后面的ID代码总是在新行上。这是我的列表构建方式,但不是写入文件的方式。有人知道为什么会出现误动作吗? 很抱歉我的短信太长了,我尽量把它写得尽可能简短,以便把我的问题讲清楚 我运行的是python2.6.5


Tags: 文件代码in列表newforifon
1条回答
网友
1楼 · 发布于 2024-04-25 07:17:25
new.append(line.strip('*\n'))
new.append('*')

您有一个行列表(每个行都有新行结束符),因此您还需要为这两行包括\n:

^{pr2}$

请记住,strip(或slice,如我所更改的)将删除换行符,因此将列表中值为“…*\n”的单个项拆分为“…”和“*”两个项,实际上会从原来的内容中删除一个新行。在

相关问题 更多 >