我正在使用for循环读取两个不同的文件。首次迭代后,第一个“for循环”停止。打印输出只是f1的第1行,所有行都是f2,但随后退出循环。
for line1 in f1:
line1 = line1.split('\t')
for line2 in f2:
line2 = line2.split('\t')
print line1,line2
F1:
X1
X2
X3
F2:
Y1
Y2
Y3
输出:
x1 y1
x1 y2
x1 y3
x2 y1
x2 y2
x2 y3
x3 y1
x3 y2
x3 y3
答案 0 :(得分:1)
您的循环当前是嵌套的,这意味着您的程序将读取f1中每一行的f2的全部内容。但是一旦到达文件2的末尾(在第一个外观的末尾,f2中没有更多的行要读取。所以我们手动将光标重置为开头。
尝试4: 在第一次到达文件末尾时,您没有将光标重置在文件2上,除非您在每次迭代中重新打开文件,您必须手动将光标移动到开头。 如果我现在理解你了:
def print_both(f1, f2):
f1.seek(0)
f2.seek(0)
for line1 in f1:
line1 = line1.split('\t')
for line2 in f2:
line2 = line2.split('\t')
print(line1, line2)
f2.seek(0)
print_both(open("f1.tsv", 'r'), open("f2.tsv", 'r'))