我正在尝试将行附加到从文件读取的空列表中,并且我已经删除了返回行和换行符,但是应该将一行作为两个单独的项输入到列表中。< / p>
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
这是输出
['&gt; Rosalind_6404','&gt; Rosalind_5959','&gt; Rosalind_0808'] ['CCTGCGGAAGATCGGCACTAGA','TCCCACTAATAATTCTGAGG','CCATCGGTAGCGCATCCTTAGTCCA','ATATCCATTTGTCAGCAGACACGC','CCACCCTCGTGGTATGGCTAGGCATTCAG','TGGGAACCTGCGGGCAGTAGGTGGAAT']
我希望它看起来像这样:
['&gt; Rosalind_6404','&gt; Rosalind_5959','&gt; Rosalind_0808'] ['CCTGCGGAAGATCGGCACTAGATCCCACTAATAATTCTGAGG','CCATCGGTAGCGCATCCTTAGTCCAATATCCATTTGTCAGCAGACACGC','CCACCCTCGTGGTATGGCTAGGCATTCAGTGGGAACCTGCGGGCAGTAGGTGGAAT']
这是源材料,只需删除's:
[ '&GT; Rosalind_6404' CCTGCGGAAGATCGGCACTAGA TCCCACTAATAATTCTGAGG '&GT; Rosalind_5959' CCATCGGTAGCGCATCCTTAGTCCA ATATCCATTTGTCAGCAGACACGC '&GT; Rosalind_0808' CCACCCTCGTGGTATGGCTAGGCATTCAG TGGGAACCTGCGGGCAGTAGGTGGAAT]
答案 0 :(得分:1)
在循环的每次迭代中,您只需查看文件中的某一行。这意味着,虽然你肯定会在最后附加不包含换行符的行,但你仍然一次附加一个文件行。您必须让解释器知道您想要组合某些行,通过在首次开始读取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] += line
答案 1 :(得分:1)
您可以将.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