我创建了这段代码:
gene = open("AY365046.1.txt","r")
g=0;
a=0;
c=0;
t=0;
gene.readline()
for line in gene:
line = line.lower()
for char in line:
if char == "g":
g+=1
if char == "a":
a+=1
if char == "c":
c+=1
if char == "t":
t+=1
print "Guanina: " + str(g)
print "Adenina: " + str(a)
print "Citosina: " + str(c)
print "Timina: " + str(t)
gc = (g+c+0.) / (a+t+c+g+0.)
print "Conteúdo GC: " +str(gc)
现在我想让它互动...我的目标是使用 input()功能来获取“序列号”,它将显示相应的数据......
在上面的代码中,它只获取一个序列/文件的数据(AY365046.1.txt)...因此,我需要代码才能访问更多文件(例如, sequence1.txt 和 sequence2.txt )...然后,获取 g , a , c <在输入()功能上通知序列/文件的strong>和 t ...
例如:
1)系统要求输入序列号
2)用户输入 sequence2
3)系统从 sequence2.txt
获取数据4)变量 g , a , c 和 t 从该文件中获取数据
5)如果序列不存在,则打印错误...
据我所知,要做到这一切,我只需要声明变量,将.txt文件分配给每一个变量,然后创建一个if / else ......
问题是我已经尝试了所有我能找到的东西,但没有任何作用......
显然我不是要求为我制作代码,但是......你们至少可以告诉我在哪里需要开始吗?我需要做的逻辑是正确的吗?我错过了什么?
答案 0 :(得分:1)
我想你想要这个:
import os
id = raw_input('please enter the file numbers id:')
file='AY{0}1.txt'.format(id)
if not os.path.exists(file):
print "Error the file doesn't exists"
else:
g,a,c,t=0,0,0,0
with open(file,'r') as f:
next(f)
for line in f:
for char in line.lower():
if char == 'g':
g+=1
if char == 'a':
a+=1
if char == 'c':
c+=1
if char == 't':
t+=1
print "Guanina: {0}".format(g)
print "Adenina: {0}".format(a)
print "Citosina: {0}".format(c)
print "Timina: {0}".format(t)
gc = (g+c+0.) / (a+t+c+g+0.)
print "Conteúdo GC: {0}".format(gc)
但我认为您应该解释代码的预期行为,因为它并不是很清楚。
答案 1 :(得分:-2)
我在您的代码中看到的问题是您只从文本文件中读取一行。下面的代码将返回整个文档的列表,以便您可以按照其余代码的方式进行迭代。
with open("AY365046.1.txt","r") as f:
lines = f.readlines()
您可以在manual
中详细了解该文件对象