我是编程领域的新手,我试图掌握python循环背后的结构和逻辑。有人可以向我解释,为什么这件事不起作用:
from Bio.SeqUtils import GC
from Bio import SeqIO
i = 0
record = SeqIO.read(open("group_%d.fasta"), "fasta")% i
for x in record.seq:
print GC(record.seq)
i+=1
上面的代码产生以下错误:
IOError: [Errno 2] No such file or directory: 'group_%d.fasta')
答案 0 :(得分:2)
你的字符串格式有点不对。
此:
record = SeqIO.read(open("group_%d.fasta"), "fasta")% i
应该是:
record = SeqIO.read(open("group_%d.fasta" % i), "fasta")
我会在with
语句中移动该内容,以确保文件实际上已正确关闭。
with open("group_%d.fasta" % i, "r") as fasta:
record = SeqIO.read(fasta, "fasta")
答案 1 :(得分:1)
该行
record = SeqIO.read(open("group_%d.fasta"), "fasta")% i
不会按照您的想法执行操作。它尝试的第一件事是:
open("group_%d.fasta")
哪个失败并显示您看到的错误。您需要在括号内移动格式参数:
record = SeqIO.read(open("group_%d.fasta" % i), "fasta")
或者,更好的是,切换到更现代的str.format
:
record = SeqIO.read(open("group_{0:d}fasta".format(i)), "fasta")
这使得格式化参数应该更清楚。