我试图将行添加到从文件中读取的空列表中,并且已经删除了返回行和换行符,但是一行应该作为两个单独的项输入到列表中。
DNA = open('DNAGCex.txt')
DNAID = []
DNASEQ = []
for line in DNA:
line = line.rstrip()
line = line.lstrip()
if line.startswith('>')==True:
DNAID.append(line)
if line.startswith('>')==False:
DNASEQ.append(line)
print DNAID
print DNASEQ这是输出
'>Rosalind_6404','>Rosalind_5959','>Rosalind_0808‘
我想让它看起来像这样
'>Rosalind_6404','>Rosalind_5959','>Rosalind_0808‘
这是来源材料,只需删除“s”:
“>Rosalind_6404”CCTGCGGAAGATCGGCACTAGA '>Rosalind_5959‘CCTGCGGAAGATCGGCACTAGA '>Rosalind_0808’
发布于 2015-07-29 21:23:57
您可以将.lstrip()和.rstrip()组合成一个.strip()调用。
然后,您会认为.append()将行添加到列表中,并将行连接到一行中。在这里,我们使用空字符串启动DNASEQ,并使用+=将行连接到一个长字符串中:
DNA = open('DNAGCex.txt')
DNAID = []
DNASEQ = []
for line in DNA:
line = line.strip()
if line.startswith('>'):
DNAID.append(line)
DNASEQ.append('')
else:
DNASEQ[-1] += line
print DNAID
print DNASEQ发布于 2015-07-29 21:21:46
在循环的每一次迭代中,您只查看文件中的某一行。这意味着,虽然您确实是在追加末尾不包含linefeed的行,但您仍然在一次追加文件的一个行。您必须让解释器知道您希望合并某些行,方法是在第一次开始在DNASEQ中阅读时设置一个标志,并在下一个DNAID开始时清除它。
for line in DNA:
line = line.strip() # gets both sides
if line.startswith('>'):
starting = True
DNAID.append(line)
elif starting:
starting = False
DNASEQ.append(line)
else:
DNASEQ[-1] += linehttps://stackoverflow.com/questions/31711192
复制相似问题