Удалите строку, если mac-адрес не соответствует регулярному выражению

#python #macos #csv #mac-address

Вопрос:

Я собрал несколько сценариев для создания отчетов с нашего сервера radius, но теперь я хочу удалить некоторые строки из этого отчета. Я ищу только строки, в которых mac-адрес соответствует повторному поиску («^. [ae26].*», mac. ниже())

Я провел некоторое тестирование с помощью этого, чтобы просмотреть mac-адрес, но теперь я хочу удалить то, что не соответствует.

 with open('macs.txt') as f:
    macs = f.read().splitlines()
    
    for mac in macs:
           
            writer.writerow(csvdata)
        mac = mac.replace('.','')
        mac = mac.replace(':','')
        mac = mac.replace('-','')
        mac = ''.join(mac.split())
        mac = ":".join(["%s" % (mac[i:i 2]) for i in range(0, 12, 2)])
        #reformat macs
        match = re.search("^.[ae26].*", mac.lower())
        if match:
            print(mac)
 

Это один из моих сценариев для анализа CSV, который поступает из ISE, я хотел бы удалить все неслучайные mac, так как моя цель-найти только случайные mac

 def macaddress():
    

    for names in glob.glob('W:/NS/NS_Shared/ISE Reports/*RADIUS_Errors*.csv'):
                
        inpute_file = csv.DictReader(open(names))
        
        seen = set()
        for row in inpute_file:
                mac = row["'CALLING_STATION_ID'"]
                mac = mac.replace("'",'')
                DN = row["'NETWORK_DEVICE_NAME'"]
                DN = DN.replace("'",'')
                UN = row["'USER_NAME'"]
                UN = UN.replace("'",'')
                FR = row["'FAILURE_REASON'"]
                FR = FR.replace("'",'')
                LD = row["'LOGGED AT'"]
                LD = LD.replace("'",'')

                #print(mac,(MacLookup().lookup(mac)),DN,IP,Port)                      
        
                network_device_list(UN,mac,LD,DN,FR)

  



def network_device_list( UN,mac,LD,DN,FR):

        
        filename = 'H:/' name  '.csv'
        write_header = not os.path.exists(filename)
        with open(filename, 'a', newline='') as csvfile:
            headers = ['User Name','MAC Address','OUI','Logged At','Failure Reason']
            writer = csv.DictWriter(csvfile,fieldnames=headers)
            if write_header:
                writer.writeheader()
            writer = csv.writer(csvfile)
            try:
                csvdata = (UN,mac,(MacLookup().lookup(mac)),LD,DN,FR)
            except KeyError:
                csvdata = (UN,mac,' No Data',LD,DN,FR)