2017-11-28 5 views
-1

Ich versuche, diesen Fehler zu beheben, ich verstehe es nicht wirklich, da ich ein schlecht ausgebildeter Netzwerk-Ingenieur bin.
Ich lese Linien von Show-Befehle auf einem Router in einer Liste - das ist alles in Ordnung.
Aus dieser Liste möchte ich bestimmte Werte auslesen, was ich mit einer for-Schleife mache.
Ich bekomme am Ende das Ergebnis, das ich brauche, aber auch einen Fehler.
Ich möchte nur bestimmte Werte aus der Liste, die die „3.“ nur die IP-Adresse ist, keine Portnummer usw. (dh ‚2.122.62.193‘, '31 .49.158.183')IndexError: Listenindex außerhalb des Bereichs - Python für Schleife

out1 = ['tcp 217.33.162.162:443 172.16.0.1:443  2.122.62.193:49971  
2.122.62.193:49971', 'tcp 217.33.162.162:443 172.16.0.1:443   
31.49.158.183:49266 31.49.158.183:49266', ''] 
gnat = [] 

for x in out1: 
    y = x 
    z = y.split(':')[3] 
    w = z.split()[1] 
    gnat.append(w) 

>>> for x in out1: 
... y = x 
... z = y.split(':')[3] 
... w = z.split()[1] 
... gnat.append(w) 
... 
Traceback (most recent call last): 
    File "<console>", line 3, in <module> 
IndexError: list index out of range 
>>> print gnat 
['2.122.62.193', '31.49.158.183' 

Es ist nicht sein kann der effizienteste Code, aber das ist das richtige Ergebnis.
Nur, dass ich den Fehler nicht verstehe?

+1

Sie können '' '' (die letzte Zeichenfolge in der Liste) nicht trennen –

Antwort

0

Schauen Sie sich die Listenwerte an, Sie sehen möglicherweise Ihren Fehler unter ''.split(':')[3]. Was teilst du dort?

Versuchen Sie, diese Logik

  1. Wenn es ein leerer String ist, nichts tun
  2. Split die Räume
  3. Besorgen Sie sich die IP: Port
  4. Split vor dem Hafen

So etwas wie dies

for x in out1: 
    if x.strip() == '': 
     continue 
    ip_port = x.split()[3] 
    ip = ip_port.split(':')[0] 
    gnat.append(ip) 
+0

Das war die Sache, die ich vermisste, die Zeichenfolge. So offensichtlich, jetzt sehe ich es! – user723748

+0

Kühl. Fühlen Sie sich frei, diese Antwort mit dem Häkchen neben dem Beitrag zu akzeptieren. –

Verwandte Themen