比较从一个文件到另一个文件的IP

时间:2017-07-19 08:52:16

标签: python python-3.x

txt'在行中有很多IP地址,如下所示

10.2.3.4
10.5.6.7
10.8.6.8
10.80.67.1
10.66.77.2
10.86.98.9

和另一个文件b.txt

10.5.6.7
10.33.56.2
10.55.78.5
10.86.98.3

现在我想在python中编写一个代码,以便b.txt IP基于相同的三个八位字节与a.txt文件中的IP地址进行比较。

因此输出可以是不在a.txt中的输出,因此输出将在下面,因为这两个IP地址三个八位字节与a.txt文件中的任何一个都不匹配

10.33.56.2
10.55.78.5

提前致谢。

file1 = open(r'a.txt', 'r') 
file2 = open(r'b', 'r')
FO = open(r'c.txt', 'w') 
data = file1.read() 
my_list = data.splitlines('10.') 
for i in my_list: 
    j = my_list[0:4] 
    print(j) 

2 个答案:

答案 0 :(得分:0)

将你的IP放在一个集合中:

ip_a = set(line.split(' ').strip())  # Or 3 first bytes if you prefer

B中每个IP的下一步

if ip_in_b not in ip_a:  # Or 3 first bytes
    print(ip_in_b)

答案 1 :(得分:0)

<强> 1 尝试使用If Environment.GetCommandLineArgs.Contains("Confirmation") Then Dim a As New confirmationForm a.ShowDialog() e.Cancel = True 'Do not show the main form. End If ... with open打开文件,因为在您当前的代码中,您只能打开它们,甚至不能关闭。这样,打开文件后它会自动关闭。

as

<强> 2    为了能够找到三个octect是否在其他一些ip的列表中你可以做这样的事情:

with open('a.txt','r') as f:
    output_a = [i for i in f]
with open('b.txt','r') as f:
    output_b = [i for i in f]