0

我有一个包含以下代码的 python 函数:

with open(modelfilepath, "rb") as modelfile, open(vcffilepath, "rb") as vcffile:
    for row in gtf_getrow(modelfile):
        print row
        #add features as appropriate
        if row["feature"] == "transcript":
            addfeature(some args...)
        if row["feature"] == "exon":
            addfeature(some other args..., vcffile=vcffile)

foraddfeature() 函数的执行在返回循环之前会经过几个函数。在“外显子”的情况下,vcffile对象作为参数传递给最终写入vcffile.

问题是经过几次迭代后,vcffile对象似乎会自发关闭,从而导致程序崩溃。如果我对用于直接访问文件名的函数进行硬编码vcffile,则不会出现问题,但这似乎是一个不受欢迎的解决方案,因为它从 with 块中删除了对文件的控制。我也不希望每次访问文件时都必须打开和关闭文件,因为该程序正在解析数百兆字节的表格数据。提前感谢您的建议。

4

0 回答 0