我目前正在尝试搜索包含基因组的.txt文件以查找'G'和'C'的特殊实例,我可以通过将代码复制并粘贴到程序中来使该程序正常工作,但是我无法弄清楚从文件中获取它。我猜测问题是代码跨越多行,但不知道如何解决。
这是我一直在使用的代码,将代码复制到python时可以使用:
sequence='**strings of code**'
found=0
size(400, 100)
background(0)
fill(255)
for letter in sequence:
if letter=='C' or letter=='G':
background(0)
found+=1
text('The GC content of the sequence is: %', 50, 50)
text((float(found)/(len(sequence)/100.0)),250,50)
这是我现在无法使用的代码:
f = open('sequence.txt', 'r').read()
sequence=f.split('\n')
found=0
size(400, 100)
background(0)
fill(255)
for letter in sequence:
if letter=='C' or letter=='G':
background(0)
found+=1
text('The GC content of the sequence is: %', 50, 50)
text((float(found)/(len(sequence)/100.0)),250,50)
答案 0 :(得分:0)
简短回答:
删除此行
sequence=f.split('\n')
并使用:
sequence = open('sequence.txt', 'r').read()
长答案:
我将假定第二个代码段中的缩进不是这里的问题,真正的问题是它不能为您提供正确的答案。
我可以在您使用的第一个片段中看到
sequence='**strings of code**'
这使序列的值成为字符串,以便在对其进行迭代时,字母变量将包含单个字符,但是,当您尝试从文件中读取它时,使用了对结果字符串的分割方法,该结果字符串将序列从字符串转换为字符串列表,因此这里的字母变成一个完整的字符串,代表了'\ n'之前的每一行,而不是像您在第一个代码段中那样的单个字母
因此,删除该行将使序列像以前一样成为要迭代的字符串