python嵌套'for'循环中断太快了

时间:2015-12-03 22:38:35

标签: python for-loop nested textedit

我无法通过这个嵌套循环发现这里发生了什么。内部(for temp in temp :)循环运行很好,但外部for循环(对于范围内的cnt)只运行一次,因此temp仅附加到infile一次。

with open("temp_inv.ext") as temp:
    with open(infile, 'a') as of:
        for cnt in range(1, sample_cnt):
            for line in temp:
                l = None
                if "INVERSE_MODELING" in line:
                    l = line.replace(smp_num[0], smp_num[cnt])
                if "solutions" in line:
                    l = line.replace(smp_num[0], smp_num[cnt])
                if "netpath" in line:
                    l = line.replace(smp_num[0], smp_num[cnt])
                if l is None:
                    of.write(line)
                else: of.write(l)

我已经检查过'sample_cnt'是一个整数,'smp_num'是一个有效的数组。

我错过了什么?

编辑:

澄清其他想要使用类似方法的人 -

我想通过改变基于'smp_num'数组的字符串来修改'temp'之后将'temp'追加到'of'。添加{temp.seek(0)}回答了我的问题,我错过了外循环仍在{with}语句中,因此需要在再次运行之前进行搜索。

1 个答案:

答案 0 :(得分:4)

一旦读完所有行,就需要使用seek()来回放文件。使用

temp.seek(0)

外圈的某个地方