Assumming文件1短:
lines1 = file1.splitlines()
lines2 = file2.splitlines()
for num, line in enumerate(lines1):
line2 = lines2[num]
print line if len(line2) == len(line) else line2
for line in lines2[num+1:]:
print line
有了实际的文件更容易,因为你可以下一个滥用()迭代线:
file1 = open("file1.txt")
file2 = open("file2.txt")
for line in file1:
line2 = next(file2)
print line if len(line2) == len(line) else line2
for line in file2:
print line
那么,你可以使用itertools.zip_longest但它的欺骗:
from itertools import izip_longest
file1 = "line1\n line2\n line3\n"
file2 = "line1\n line2\n line3\n line4\n line5\n"
for line1, line2 in izip_longest(file1.splitlines(), file2.splitlines(), fillvalue=''):
print line1 if len(line2) == len(line1) else line2
编辑:在py2 zip_longest被称为izip_longest。
您能否重新说明您的问题? – sshashank124
我更新了问题 – 5555555555
使用嵌套循环,可以打印到(file1 * file2)行,因为您为第一个文件中的每一行迭代第二个文件。你只需要一个循环,绝对不是嵌套循环。 – x3al