def DBCompare(DB1,DB2):
for DBRecord1 in DB1:
for DBRecord2 in DB2:
if DBRecord1["CompleteFilePath"] == DBRecord2["CompleteFilePath"]:
if DBRecord1["LastModified"] < DBRecord2["LastModified"]:
DBRecord1["Flag"] = "OldFile"
DB1.update(DBRecord1)
elif DBRecord1["LastModified"] > DBRecord2["LastModified"]:
DBRecord2["Flag"] = "OldFile"
DB2.update(DBRecord2)
elif DBRecord1["LastModified"] == DBRecord2["LastModified"]:
DBRecord1["Flag"] = DBRecord2["Flag"] = "OldFile"
DB1.update(DBRecord1)
DB2.update(DBRecord2)
else: continue # Ignore errors for now
break # Found a match so jump out of the loop
return
内部for循环的第一次迭代(通过所有DB2)很好,然后它转到DB1的第二条记录并再次启动并遍历DB2 - 在开始时DB2返回到第一条记录但它保持不变在那里,永远不会增加。谁知道为什么?我确信无论如何都有一种更优雅的方式来做所有这些,但我是一个学习者.... 我遇到的另一个问题是如果目录结构太长,程序挂起 - 我无法找出数据库的大小或如何分配足够的内存,因此它不会耗尽(使用内存存储为我的TinyDBs)。