我有一个数据文件,其中包含一个序列列表,每个序列长6个氨基酸。 如下所示:
QDFRGETW
AQAVRSSS
ANGVELRD
我想基本上将此文件转换为:
QAN
DQN
FAG
RVV
GRE
....
WSD
具有一个简单的for
循环和while
循环。
这是我尝试过的有效方法。
i2 = ''
with open('datafile','r') as f:
for line in f:
i2 += line[2]
我要做的是遍历索引并将每个新字符串添加到字典中。所以我决定尝试一下。
Dict = {}
i = 0
seq = ''
with open ('datafile','r') as f:
while i <= 7:
for line in f:
seq += line[i]
Dict[i] = seq
i += 1
但是,当我打印字典时,它仅显示,例如:{0:QAN}
,而没有其他显示。如果我减小Dict[i]
的缩进量,它现在具有所有键,但是具有QAN值,而不是1:DQN等...
奇怪的是,即使我输入以下代码:
seq = ''
i = 0
with open ('datafile','r') as f:
while i <= 7:
for line in f:
seq += line[i]
i += 1
print seq
如果还返回了QAN,而不是WSD,那正是我所期望的。因此,while循环存在问题。有什么想法吗?
答案 0 :(得分:2)
下面的代码应该可以工作。 input_file.txt
是包含文本的文件。我认为,预期输出的第一行必须为QAA
。
for line in zip(*open('input_file.txt').readlines()):
print(''.join(line))
输出:
QAA
DQN
FAG
RVV
GRE
ESL
TSR
WSD