0

我有两个文件,文件 A.txt 有数百行格式(ip,mac),文件 B.txt 有数百行格式(mac)。我正在寻找的是从文件A中的文件B中搜索(macs),如果找到从文件A中打印行(ip,mac)。这两个文件之间已经有100多个mac匹配但使用代码我写它只返回第一个匹配项。

下面是我的简单代码

with open("B.txt", "r") as out_mac_file, open("A.txt", "r") as out_arp_file:
    for x in out_mac_file:
        for y in out_arp_file:
            if x in y:
                print(y)

知道代码中可能有什么问题,或者是否有其他方法可以做到这一点?

编辑:添加文件 A 和文件 B 的格式

文件 B

64167f18cd3d
64167f18c77a
64167f067082
64167f0670b5
64167f067400
64167f0674e5
64167f06740d

文件 A

10.55.14.160,64167f869f18
10.55.20.59,64167f37a5f4
10.55.20.62,64167f8866e0
10.55.20.65,64167f8b4bd8
10.55.20.66,64167f372a72
10.55.20.67,64167f371436
4

1 回答 1

0

如果您可以使用 pandas(因为您的数据采用逗号分隔格式):

import pandas as pd
a = pd.read_csv("A.txt", header=None, names=["mac"])
b = pd.read_csv("B.txt", header=None, names=["ip","mac"])

for mac in a["mac"]:
  result = b[b["mac"] == mac]
  if len(result) > 0:
    print (result)

或者只是一个单行器而不是一个循环:

b.merge(a, on="mac")
于 2021-01-12T07:29:48.120 回答