У меня есть два файла.Я хочу получить список идентификаторов для новых заказов, которые находятся в Master.txt, но не в Subset.txt.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 совпадает со строкой в Subset.txt, но все остальные строки не имеют этого идентификатора, поэтому он добавляет все эти идентификаторы в notFoundDict.
Поэтому я хочу, чтобы он выполнил поиск по всему файлу B и добавил этот идентификатор, если он не найден во всем файле, и прервал его, если он был найден.
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"}