Brauchen Sie Rat, wie man die dritte Liste aus ein paar Listen erstellt. Der erste ist so (etwa 20000 Zeilen): LIST1.Erstellen der Liste von 2 vorherigen Listen
field1 field2 field3 field4 field5 field6 field7
---------------------------------------------------------------------------
1167 28669 001f.ce5d.cb4d Gi0/0/1.10 1 Vi2.156 PTA
848 32350 c83a.350d.f368 Gi0/0/1.10 1 Vi2.601 PTA
1771 43465 c46e.1f7a.4763 Gi0/0/1.10 1 Vi2.959 PTA
1390 24116 dc9f.db01.c6e8 Gi0/0/1.10 1 Vi2.32 PTA
712 23579 d850.e6d5.cb1c Gi0/0/1.10 1 Vi2.436 PTA
1239 28354 2828.5dd4.bc65 Gi0/0/1.10 1 Vi2.78 PTA
204 27816 e03f.491d.9978 Gi0/0/1.10 1 Vi2.341 PTA
383 28368 60e3.278c.7199 Gi0/0/1.10 1 Vi2.114 PTA
671 54657 c46e.1f81.a3d3 Gi0/0/1.10 1 Vi2.224 PTA
Das zweite ist wie folgt (etwa 20000 Zeilen): LIST2
field1 field2 field3 field4 field5
---------------------------------------------------------------------
Vi2.1 0001799 PPPoE 00:00:08 10.100.146.30
Vi2.2 0010129 PPPoE 00:00:08 10.100.148.108
Vi2.4 0010173 PPPoE 00:00:08 10.100.150.56
Vi2.5 0011093 PPPoE 00:00:08 10.100.146.143
Vi2.6 0003301 PPPoE 00:43:48 10.100.150.107
Vi2.7 0010101 PPPoE 00:00:08 10.100.147.133
Vi2.8 0001859 PPPoE 00:00:08 10.100.145.223
Vi2.9 0010049 PPPoE 06:45:08 10.100.147.138
Vi2.10 0003515 PPPoE 00:00:28 10.100.146.173
Vi2.11 0001747 PPPoE 00:00:18 10.100.146.37
Vi2.12 0011060 PPPoE 04:40:28 10.100.149.165
Vi2.13 0001335 PPPoE 00:00:08 10.239.152.165
Vi2.14 0010154 PPPoE 00:00:08 10.100.148.68
Ich brauche die dritte Liste zu erstellen, und die Bestellung wird in einem solchen Art und Weise benötigt:
field6(list1) Field2(list1) field3(list1) field2(list2) field5(list2)
Übrigens. Field6 von list1 ist das selbe wie field1 in list 2. Ich verstehe, dass ich jede Zeile von list1 nehmen muss, mache es eine Liste von Feldern und nimm danach das Feld 6 und gehe zu list2 und suche diesen Wert in der Liste2. Und danach sammeln Sie alle benötigten Felder in einer neuen Zeile. Jeder, ich bin sehr, sehr neu im Parsing, bitte gib mir ein paar Beispiele, wie ich mit dieser (ich denke typischen) Aufgabe umgehen soll!
Klärung. Ich erhalte, dass die Zeilen über Python 3 telnetlib, wie folgt aus:
import telnetlib
HOST = '2.22.22.22'
password = "user"
user = "user"
tn = telnetlib.Telnet(HOST)
tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"term len 0 \n")
tn.write(b"show pppoe session | exclude 7878.7878.7878 \n")
tn.write(b"\n exit\n")
mystring = tn.read_all().decode('ascii').replace('\r\n', '\n')
print(mystring)
temp_list = mystring.splitlines()
print(temp_list)
mylist = ["\n".join(s for s in temp_list if 'PTA' in s and 'Vi2' in s)]
aber dies ist nicht eine Python-Liste -)) – marmeladze
Ich erhalte, dass von der telnetlib von Cisco-Gerät. –
Welches Format haben diese Tabellendaten? – marmeladze