【发布时间】:2014-06-17 15:41:50
【问题描述】:
我正在尝试在 Python 中比较两个文件 A 和 C,但由于某种原因,双 for 循环似乎无法正常工作:
with open(locationA + filenameC,'r') as fileC, open(locationA + filenameA,'r') as fileA:
for lineC in fileC:
fieldC = lineC.split('#')
for lineA in fileA:
fieldA = lineA.split('#')
print 'UserID Clicks' + fieldC[0]
print 'UserID Activities' + fieldA[0]
if (fieldC[0] == fieldA[0]) and (fieldC[2] == fieldA[2]):
print 'OK'
这里,似乎只比较了 C 的那一行,但对于其他行,“A 循环”似乎被忽略了。
谁能帮我解决这个问题?
【问题讨论】:
-
difflib模块? -
一旦在外循环的第一次迭代中到达内循环中
fileA的末尾,指针就位于文件的末尾。后续对文件的迭代尝试不会做任何事情。 -
@jonrsharpe 关于您的问题的原因是正确的。您需要
fileA.seek(0)来重置您的句柄。 -
os.system('diff ' + filenameA + ' ' + filenameB)....好吧好吧,开个玩笑
-
你真的想比较 A 中的每一行和 C 中的每一行吗?并且每次比较两次?
标签: python