我在将列表写入文件时遇到问题。我正在注释某些文件以将其更改为特定格式,因此我读取序列对齐文件,将其存储在列表中,进行必要的格式化,然后将其写入新文件。问题是,虽然我的列表(包含序列对齐)结构正确,但将它们写入新文件时产生的输出不正确(它不会复制我的列表结构)。我只包含了我的输出的一部分,以及它应该是什么样子,因为列表本身太长,无法发布。在
写入文件的输出:
>
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
您有一个行列表(每个行都有新行结束符),因此您还需要为这两行包括\n:
^{pr2}$请记住,strip(或slice,如我所更改的)将删除换行符,因此将列表中值为“…*\n”的单个项拆分为“…”和“*”两个项,实际上会从原来的内容中删除一个新行。在
相关问题 更多 >
编程相关推荐