今天写了一个两个基因集找相同的基因然后输出这么个小程序就无论如何也跑不起来,原因出在循环嵌套上,这方面之前就出过问题,后来阴差阳错的就好了我也没太注意,但是最近这个问题严重制约了工作效率,我决心找到问题的所在。
for lanes in BetaTop1.readlines(): lane = lanes.strip('\n').split("\t") Location = int(lane[0]) for startsite in a: if Location >= startsite and Location <= (startsite + 10000): x.write("%i\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" %(Location,lane[1],lane[2],lane[3],lane[4],lane[5],lane[6],lane[7])) break else: continue
这是今天可以跑的版本,我之前的错误在于把文件循环嵌套在了列表循环中,因为文件相对小一点,占的内存比较小,我就想先内圈用文件来循环,可以一直就是内圈只跑一次,外圈运行一次然后就都是外圈在跑了,检查了控制结构之后发现没有问题,对照之前可以跑的脚本之后我发现我的文件循环是套在内圈的,所以很有可能是文件循环不能套在列表循环里面,果然,互换了嵌套位置之后程序就可以正常的工作了。
文件循环不能套在列表循环里!!!!!!!
那么文件循环可以不可以出现在其他文件循环中间呢,to be continue!