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)
答案 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]