Sep-08-2022, 08:30 AM
Use a set, if the order is not required.
from io import StringIO from ipaddress import ip_address, IPv4Address # fake file for test ip1_content = StringIO( """192.168.0.1 192.168.0.2 192.168.0.3 2001:4800:7819:104:be76:4eff:fe04:5819 192.168.0.4 192.168.0.5 192.168.0.6""" ) ip2_content = StringIO( """ 192.168.0.799 192.168.0.900 192.168.0.3 2001:4800:7819:104:be76:4eff:fe04:5819 192.168.0.1000 192.168.0.5 192.168.0.83""" ) def make_ipv4_set(file_like): results = set() for line in map(str.strip, file_like): try: addr = ip_address(line) except ValueError: continue if isinstance(addr, IPv4Address): results.add(addr) # or if you want str # results.add(line) return results results = make_ipv4_set(ip1_content) - make_ipv4_set(ip2_content) print(results)
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
All humans together. We don't need politicians!