2016-07-10 27 views
-2

Benötigen Sie Hilfe beim Sortieren der Ergebnisse von .findall in Python, um die Ergebnisse in einem lesbaren Format zu konvertieren. Ich habe einen Schnipsel mir geben folgende AusgabePython .findall Ergebnisse in lesbare

[('Jul 11 11:25:51', 'ul 11 11:25:51', '', '', ''), ('', '', 'u2k', '', ''), ('', '', '', 'CBDCS2.CTP', ''), ('Jul 11 11:25:52', 'ul 11 11:25:52', '', '', ''), ('', '', 'u2k', '', ''), ('', '', '', 'WNDCS2.WTC', ''), ('Jul 11 11:25:53', 'ul 11 11:25:53', '', '', ''), ('', '', '', '', 'interface GigabitEthernet 2/0/44 '), ('', '', 'lqin', '', ''), ('', '', '', 'CASWNTHS151', ''), ('Jul 11 11:25:55', 'ul 11 11:25:55', '', '', ''), ('', '', 'u2k', '', ''), ('', '', '', 'asuspmk02', ''), ('Jul 11 11:25:55', 'ul 11 11:25:55', '', '', ''), ('', '', 'u2k', '', ''), ('', '', '', 'h_asuspmk01', ''), ('Jul 11 11:26:13', 'ul 11 11:26:13', '', '', ''), ('', '', '', 'cis1tow', ''), ('Jul 11 11:26:32', 'ul 11 11:26:32', '', '', ''), ('', '', '', '', 'show rpl route-policy RP-AKAMAI-LDV-OUT attachpoints '), ('', '', 'lyang', '', ''), ('', '', '', 'bgnzldv02', ''), ('Jul 11 11:26:32', 'ul 11 11:26:32', '', '', ''), ('', '', '', '', 'switchport voice vlan 462 '), ('', '', 'lqin', '', ''), ('', '', '', 'CASWNTHS151', ''), ('Jul 11 11:26:38', 'ul 11 11:26:38', '', '', ''), ('', '', '', '', 'copy running-config startup-config '), ('', '', 'lqin', '', ''), ('', '', '', 'CASWNTHS151', ''), ('Jul 11 11:26:57', 'ul 11 11:26:57', '', '', ''), ('', '', 'lqin', '', ''), ('', '', '', 'CASWNTHS151', '')] 

benötigen Ausgabe als

Jul 11 11:25:51 ul 11 11:25:51 u2k CBDCS2.CTP 

Jul 11 11:25:51 ul 11 11:25:51 u2k WNDCS2.WTC 

und so weiter

Snippet wie unten

p = re.compile(r'([J](\S+\W+\S+\W+\S+))|User=(\S\S+),|NetworkDeviceName=(\S\S+),|CmdAV=([^\<]*)') 
    results = re.findall(p,output) 
    file4.write(str(results)) 

Eingang als

01 folgt
+0

Bitte posten Sie Ihren Versuch, dies zu lösen, und auf welche Weise (s) es nicht die Arbeit macht. –

+0

Wie ich erwähnt habe, ist der in file4 gespeicherte Inhalt wie oben; Was ich brauchte, war Jul 11 ​​11:25:51 ul 11 ​​11:25:51 U2k CBDCS2.CTP Jul 11 ​​11:25:51 ul 11 ​​11:25:51 U2k WNDCS2.WTC nO Komma und Klammern) – Saadi381

+0

So Sie habe nicht versucht, das überhaupt zu lösen. –

Antwort

-1

Haben Sie bereits formatierte Ausgaben formatiert?

p = re.compile(r'([J](\S+\W+\S+\W+\S+))|User=(\S\S+),|NetworkDeviceName=(\S\S+),|CmdAV=([^\<]*)') 
results = re.findall(p,output) 
file4.write('\n'.join([' '.join([str(i) for i in row]) for row in results])) 
+0

Danke Kevin, scheint zu arbeiten ... Prost – Saadi381

+0

Ich bin froh, dass es nützlich war. die besten Wünsche. – Kevin

+0

Diese Ausgabe sieht nicht wie das Beispiel in der Frage aus. –

0

Dieser Code:

line = [] 
for d in results: 
    if d[0] != '': 
     if len(line)>0: 
      print " ".join(line) 
     line = [] 
    for dx in d: 
     if dx != '': 
      line.append(dx) 
if len(line)>0: 
    print " ".join(line) 

diesen Ausgang erzeugt, wenn results wie in der Spitze der Frage angezeigt:

Ob die
Jul 11 11:25:51 ul 11 11:25:51 u2k CBDCS2.CTP 
Jul 11 11:25:52 ul 11 11:25:52 u2k WNDCS2.WTC 
Jul 11 11:25:53 ul 11 11:25:53 interface GigabitEthernet 2/0/44 lqin CASWNTHS151 
Jul 11 11:25:55 ul 11 11:25:55 u2k asuspmk02 
Jul 11 11:25:55 ul 11 11:25:55 u2k h_asuspmk01 
Jul 11 11:26:13 ul 11 11:26:13 cis1tow 
Jul 11 11:26:32 ul 11 11:26:32 show rpl route-policy RP-AKAMAI-LDV-OUT attachpoints lyang bgnzldv02 
Jul 11 11:26:32 ul 11 11:26:32 switchport voice vlan 462 lqin CASWNTHS151 
Jul 11 11:26:38 ul 11 11:26:38 copy running-config startup-config lqin CASWNTHS151 
Jul 11 11:26:57 ul 11 11:26:57 lqin CASWNTHS151 

ist der Autor, was will schwer zu sagen, von der zweideutigen Frage.

+0

Entschuldigung, wenn ich die Frage nicht klar genug machen könnte; Ich bin ein Neuling in diesem .. ich werde versuchen, Ihren Code und wird Sie wissen lassen..danke – Saadi381