for循环问题

mar*_*rsx 0 python for-loop

对于循环问题:

in1 = open('file_1', 'r')
in2 = open('file_2', 'r')
outf = open('out_file', 'w')


for line in in1:
    s = line.split('\t')
    A = s[1][:-1]
    B = s[0]
    counter = 0
    for line in in2:
        ss = line.split('\t')
        if A == ss[0] or A == ss[1]:
            counter += 1
    outf.write('%s\t%s\t%s\n'%(A,B,counter))
Run Code Online (Sandbox Code Playgroud)

问题是它只是通过for line in in2:第一次line in in1.我似乎无法弄清楚为什么.

Sve*_*ach 6

您只能迭代一次文件.要从头开始,请使用

in2.seek(0)
Run Code Online (Sandbox Code Playgroud)

在内循环之前.