gpt4 book ai didi

python - 使用 python 比较一个文件与另一个文件是否缺少条目

转载 作者:行者123 更新时间:2023-12-01 08:53:26 26 4
gpt4 key购买 nike

我有两个文件。我想获取 Master.txt 中但不在 Subset.txt 中的新订单的 ID 列表。 Master.txt还包含现有订单(EXIST),这些订单不在Subset.txt中,因此它不是文件的1:1比较。

foundCount = 0
notFoundCount = 0
notFoundDict = []

for i, logLine in enumerate(open(master, "r").readlines()):
if len(logLine ) > 1:
if "NEW" in log_line:
newItemDict = dict(item.split(":") for item in newItem.split(","))
id = newItemDict ['id']

for i, subsetLogLine in enumerate(open(subset, "r").readlines()):
if id in subsetLogLine and "NEW" in subsetLogLine:
foundCount += 1
break
else:
notFoundCount += 1
notFoundDict.append(id)

不幸的是,它在 Master.txt 的第一行中获得唯一的 id,与 Subset.txt 中的一行相匹配,但所有其他行没有该 id,因此它将所有这些 id 添加到 notFoundDict 。

所以我希望它搜索所有文件 B,如果在整个文件中找不到则附加该 id,如果找到则中断。

Master.txt
{"Type":"NEW","id":201753427,"time":"08:11:57.545","title":"string"}
{"Type":"NEW","id":201753195,"time":"08:11:58.616","title":"string"}
{"Type":"EXIST","id":201753195,"time":"08:11:59.639","title":"string"}
{"Type":"UPDATE","id":201753195,"time":"08:13:57.319","title":"string"}
{"Type":"UPDATE","id":201753195,"time":"08:15:51.119","title":"string"}
{"Type":"NEW","id":201753199,"time":"08:19:13.114","title":"string"}


Subset.txt
{NEWORDID="201753427" ORDTYPE="NEW" ORIGIN="LocationA" USERNAME="..." TIME="08:11:57.645"}
{NEWORDID="201753195" ORDTYPE="NEW" ORIGIN="LocationC" USERNAME="..." TIME="08:11:57.619"}
{NEWORDID="201753199" ORDTYPE="NEW" ORIGIN="LocationC" USERNAME="..." TIME="08:19:13.114"}

最佳答案

您是否考虑过采用不同的方法?

将文件 1 中的所有新订单 ID 加载到集合中。

将文件 2 中的所有新订单 ID 加载到集合中。

然后查找文件 1 集中不在文件 2 集中的所有对象。

似乎是解决问题的更简单方法,除非文件异常大。

关于python - 使用 python 比较一个文件与另一个文件是否缺少条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52952329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com