Ich versuche, Zeichenfolgen auszugeben, die aus einem regex
Ausdruck eingelesen werden. Für einige der Textzeilen, die mit meiner Regex-Suche eingelesen werden, gibt es keine Daten, so dass nichts zu lesen ist. Wenn dies auftritt, erhalte ich den Fehler "AttributeError: 'NoneType' object has no attribute 'group'
. Könnte jemand mir helfen, eine Arbeit in meinem Code zu schreiben, so dass, wenn nichts von der Regex-Suche eingelesen wird, die Variable nicht ausgedruckt wird? Ich habe versucht if (col3.group() != None):
, aber das scheint nicht zu funktionieren.Problemumgehung keine Variable von Regex-Suche eingelesen
#!/usr/bin/env python
#purpose of script: To conduct an nslookup on a list of IP addresses
import os, csv, re
#get list of IP's from file
inFile='filesystem/Book1.txt'
ipList = []
with open(inFile, 'rb') as fi:
for line in fi:
line = line.replace(',', '')#remove commas and \n from list
line = line.replace('\r', '')
line = line.replace('\n', '')
ipList.append(line)# create list of IP addresses to lookup
#output results
outFile='filesystem/outFile.txt'
fo = open(outFile, 'w')
inc=0
writeToFileValue = ""
for e in ipList:
result = os.popen('nslookup ' + e).read()#send nsLookup command to cmd prompt
col1 = re.search(r'Server:.*', result, re.M|re.I)#use regex to extract data
col2 = re.search(r'Address: 8.8.8.8', result, re.M|re.I)
col3 = re.search(r'Name:.*', result, re.M|re.I)
col4 = re.search(r'Address: (?!8.8.8.8).*', result, re.M|re.I)
print col1.group()
print col2.group()
if (col3.group() != None):
print col3.group() # if none, skip
if (col4.group() != None):
print col4.group() # if none, skip
können Sie die Traceback zeigen? In welcher Zeile erhalten Sie den AttributeError? –