www.Rivin.de https://www.rivin.de/forum/ |
|
Python Skript zum Logs verarbeiten. https://www.rivin.de/forum/viewtopic.php?f=26&t=9176 |
Seite 1 von 1 |
Autor: | Desmond [ Sa 22. Nov 2014, 20:09 ] |
Betreff des Beitrags: | Python Skript zum Logs verarbeiten. |
Hallo, ich arbeite derzeit an einem kleinen Skript um die NWN-Logs in eine etwas lesbarer Form zu bringen. Bis her kommt das folgende heraus: 19:46 Ralthus von Hohezinn: *mustert die Frau zu seiner linken* 19:47 Fira Feuerschweif Kaeri: *Die grün erstrahlenden Augen schauen zu Ralthus hinauf als sie sich ihm zuwendet. Sie faltet ihre Hände andächtig vor ihrem Schoß.* 19:49 Ralthus von Hohezinn: *mustert die Robe und dann wieder das Gesicht* 19:49 Ralthus von Hohezinn: *legt die Stirn in Falten* 19:49 Fira Feuerschweif Kaeri: *Die elfischen Züge in ihrem Gesicht sind unübersehbar. Ebenso die Ansätze des flammend roten Haares welches sich unter der Kapuze zeigt.* 19:50 Fira Feuerschweif Kaeri: Uluvathae, Ralthus. *Spricht sie im weichen klang der elfischen Stimme.* 19:50 Ralthus von Hohezinn: Fira? 19:51 Fira Feuerschweif Kaeri: Avavaen. 19:52 Ralthus von Hohezinn: Du bist gestorben? *ungläubig* 19:53 Fira Feuerschweif Kaeri: Ich bin verbrannt und aus meiner Asche wiederauferstanden auf den Willen der Mutter Mystra hin. Ideen was man noch machen sollte, damit es noch besser Lesbar wird? |
Autor: | Feuervogel [ Sa 22. Nov 2014, 20:49 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Hört sich gut an und ich bin interessiert, früher hatte ich den Logcutter, läuft aber unter WIn7 bei mir nicht. |
Autor: | m8thy [ So 23. Nov 2014, 01:36 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Sieht sehr gut aus und ist viel übersichtlicher. Kann man eventuell bei den Namen noch was kürzen? Da reicht vielleicht der Vorname - das kürzt noch mal etwas Platz |
Autor: | anima [ So 23. Nov 2014, 01:50 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Find ich gut! |
Autor: | Lionet [ So 23. Nov 2014, 02:00 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Geil. Wie vewrwende ich das? |
Autor: | Luna [ So 23. Nov 2014, 09:53 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Ich find das so schon ok, auch mit den vollständigen Namen. Ähnlich oder mehrfache Vornamen können ja immer mal vorkommen. Daher würde ich as auch so wie es ist nutzen. |
Autor: | Desmond [ So 23. Nov 2014, 11:44 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Bisher sieht das ganze so aus und läuft unter Python 2.X. Das ist noch alles andere als elegant programmiert. Code: # -*- coding: utf-8 -*- """ Spyder Editor """ import pylab with open('/home/aldero/test.txt','r') as f: #<-------------- Hier muss der Pfad zu eurem Log hin content = f.readlines() content2=[] for line in content: if '[Talk]' in line: info,text=line.split(': [Talk]') content2.append([info,text]) content2=pylab.array(content2) for i in xrange(content2.shape[0]): content2[i,1]=content2[i,1].replace('<','[') content2[i,1]=content2[i,1].replace('>',']') if len(content2[i,0].split(']'))>2: content2[i,0]=content2[i,0].split(']')[0][1:] +' '+ content2[i,0].split(']')[2] elif len(content2[i,0].split(']'))==2: content2[i,0]=content2[i,0].split(']')[0][1:] +' '+ content2[i,0].split(']')[1] content3=[] for i in xrange(content2.shape[0]): content3.append([content2[i,0].split(' ')[0],content2[i,0].split(' ')[1],content2[i,1]]) content3=pylab.array(content3) with open('/home/aldero/Log_Forum.txt','w') as f: #<--------- Hier kommt der Pfad zur Datei for i in xrange(content2.shape[0]): if i==0: f.write('[b]'+content3[i,0]+' [i]'+ content3[i,1] +'[/i] :[/b] \n' +content2[i,1]) else: if content3[i,1]==content3[i-1,1]: f.write('\t \t'+content2[i,1]) else: f.write('[b]'+content3[i,0]+' [i]'+ content3[i,1] +'[/i] :[/b] \n' +content2[i,1]) f.close() #""" 19:46 Ralthus von Hohezinn : *mustert die Frau zu seiner linken* 19:47 Fira Feuerschweif Kaeri : *Die grün erstrahlenden Augen schauen zu Ralthus hinauf als sie sich ihm zuwendet. Sie faltet ihre Hände andächtig vor ihrem Schoß.* 19:49 Ralthus von Hohezinn : *mustert die Robe und dann wieder das Gesicht* *legt die Stirn in Falten* 19:49 Fira Feuerschweif Kaeri : *Die elfischen Züge in ihrem Gesicht sind unübersehbar. Ebenso die Ansätze des flammend roten Haares welches sich unter der Kapuze zeigt.* Uluvathae, Ralthus. *Spricht sie im weichen klang der elfischen Stimme.* 19:50 Ralthus von Hohezinn : Fira? 19:51 Fira Feuerschweif Kaeri : Avavaen. 19:52 Ralthus von Hohezinn : Du bist gestorben? *ungläubig* 19:53 Fira Feuerschweif Kaeri : Ich bin verbrannt und aus meiner Asche wiederauferstanden auf den Willen der Mutter Mystra hin. 19:53 Ralthus von Hohezinn : Und sie gab dir diese Form? 19:53 Fira Feuerschweif Kaeri : Sie ist notwendig Ralthus. Nur eine Elfe vermag Devon zu bezwingen wie du weißt. 19:54 Amua Neftarie Tua von Kassar : Grüße allerseits 19:54 Ralthus von Hohezinn : *nickt* Sie stehen uns also doch bei. *nickt gen Amua* Grüße Baronin. |
Autor: | Kay [ So 23. Nov 2014, 12:11 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Ich persönlich fand es angenehmer zu lesen und übersichtlicher, als die Namen links direkt neben dem Gesagten waren. |
Autor: | Ameng Xilo [ So 23. Nov 2014, 13:02 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Ja, ich auch. ^^ Ist aber ziemlich geil, das Ding. |
Autor: | Luna [ So 23. Nov 2014, 13:08 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Ich find auch die erste Version besser zu lesen.^^ |
Autor: | Necrobaw [ So 23. Nov 2014, 13:16 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Wenn es noch eine Möglichkeit geben würde, jedem Sprecher eine eigene Farbe zuzuordnen... aber das mag vielleicht einen Schritt zu weit gehen. |
Autor: | Animus [ So 23. Nov 2014, 15:01 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Necrobaw hat geschrieben: Wenn es noch eine Möglichkeit geben würde, jedem Sprecher eine eigene Farbe zuzuordnen... aber das mag vielleicht einen Schritt zu weit gehen. Wäre natürlich wünschenswert, aber ich nehme an, dass es kaum einstellbar sein dürfte, da das Script selbstständig unterschiedliche Farben entsprechend der Zeichenfolge setzen müsste. Solange wir nicht unterschiedliche Namens-Farben direkt in den IG-Chat einbetten, wird das also auch im Script normalerweise nicht ohne unangemessene Umstände möglich sein. Betreffend der Lesbarkeit allerdings würde ich auf die fettschrift verzichten und stattdessen einfach Namen und gesprochene Zeilen in unterschiedlicher Schriftfarbe markieren. Evtl. ein helles Blau für gesprochenen Text und Gold für die Namen. Das fette tut jedenfalls in den Augen weh. |
Autor: | Desmond [ So 23. Nov 2014, 15:50 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Ich mag die fett geschriebenen Namen eigentlich *g* Jetzt einmal mit Farbe für jeden Sprecher. Das wirkt nicht wirklich übersichtlicher auf mich. Vielleicht nur die Namen Einfärben? Emotes ebenfalls Einfärben? Meinungen? 20:13 Jessica Telarion von Artief : *sie hebt knapp eine Braue* Vertretet ihr die Kanzlerin? 20:14 Fira Feuerschweif Kaeri : Ich bin die Kanzlerin. Ich schrieb doch, dass Ihr nicht verwundert sein sollt mich zu erblicken nach dem Zwischenfall. 20:15 Jessica Telarion von Artief : *sie blickt ein wenig zweifelnd drein und sieht fragend zu Ralthus* 20:15 Ralthus von Hohezinn : *nickt* Es ist die Kanzlerin Feuerschweif. 20:15 Jessica Telarion von Artief : *sie... nickt.. langsam* 20:16 Fira Feuerschweif Kaeri : Mein Bericht zu diesem Vorfall ist jedoch erst für einen späteren Zeitpunkt angesetzt. 20:16 Jessica Telarion von Artief : Nun, wenn der Hofmagus es bestätigt, will ich es nicht in Zweifel ziehen - bitte verzeiht meinen Argwohn, Kanzlerin. Aber trotz zehnjähriger Erfahrung auf dem Schlachtfeld habe ich dergleichen noch nicht erlebt. 20:16 Jessica Telarion von Artief : ((sorry)9 20:17 Amua Neftarie Tua von Kassar : zwischenfall? 20:17 Ralthus von Hohezinn : Ihr seid mit den Wahlmöglichkeiten für die Sitzungsordnung vertraut? 20:18 Jessica Telarion von Artief : Ja, sie sind mir geläufig und ich las das Protokoll der letzten Sitzung. Eine unnötige Verkomplizierung. Es wäre ausreichend gewesen, die Leitung bei der Kanzlerin zu lassen. 20:18 Fira Feuerschweif Kaeri : Ich hatte einen kurzen Bericht hierzu hinterlassen. Es gab einen Angriff vor Franks Taverne. 20:19 Ralthus von Hohezinn : Bedauerlich das ihr bei der letzten Sitzung nicht anwesend wart. Eine Stimme der Vernunft mehr hätte nicht geschadet. 20:19 Fira Feuerschweif Kaeri : Doch hätte sie das Stimmgewicht nicht durchbrochen. 20:20 Lucian Grave : Nabend 20:20 Ralthus von Hohezinn : Guten Abend Baron Grave. 20:20 Lucian Grave : brennt das irgendwo, es riecht etwas verbrannt hier *nachhakend* 20:20 Fira Feuerschweif Kaeri : Meinen Gruß 20:20 Amua Neftarie Tua von Kassar : Guten abend euch, baron Grave 20:21 Bartlen Lenbach : *er kommt mit einigen Akten heran* Guten Abend, Baron Grave, Baronin Kassar, Marschall von Artief, Hofmagus von Hohezinn, Kanzlerin Feuerschweif. 20:21 Ralthus von Hohezinn : Herr Lenbach *nickt Bartlen zu* 20:21 Fira Feuerschweif Kaeri : Ich verstehe, Ihr habt noch nach dem Feuer sehen müssen. 20:21 Bartlen Lenbach : Es tut mir leid, dass es so kurzfristig war, konnte mein Punkt noch in die Tagesordnung übernommen werden? 20:21 Amua Neftarie Tua von Kassar : euch eben so, herr Lenbach ein guten Abend 20:21 Lucian Grave : *nimmt Platz* 20:21 Ralthus von Hohezinn : *nickt* Ich habe es aufgenommen. |
Autor: | Ameng Xilo [ So 23. Nov 2014, 15:52 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Ich finde das eigentlich ganz gut! ^^ |
Autor: | Lafaellar [ So 23. Nov 2014, 16:00 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Ich fände es besser die Namen der Sprecher zu färben und den Text in Emotes und Gesprochenes farblich zu trennen. |
Autor: | Necrobaw [ So 23. Nov 2014, 16:35 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Wir kommen wohl in den Bereich der Geschmackssache. |
Autor: | Desmond [ So 23. Nov 2014, 17:06 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Code: # -*- coding: utf-8 -*- """ Spyder Editor This temporary script file is located here: /home/aldero/.spyder2/.temp.py """ import pylab ######################################## # Einstellungen ####################################### Show_Talk=True # Zeige normalen Chat Show_Whisper=False # Zeige geflüsterte Nachtrichten Show_Tell=False # Zeige PMs Color_Speaker=True # Färbe Text ein Color_Speaker_Emote=True # Färbe Emotes wie Sprecher Color_Name=True # Färbe Name des Sprechers Outputformat='Line' # 'Block' # Format der Ausgabe Line - Jede Zeile wird vollständig angegeben. Block - Falls ein Sprecher mehrfach nacheinander spricht wird der Name nur einmal angezeigt bis der Sprecher wechselt Loginfo=True ######################################## # Programm ######################################## with open('/home/aldero/test.txt','r') as f: #<------- Pfad zum Log content = f.readlines() content2=[] for line in content: if Show_Talk: if '[Talk]' in line: info,text=line.split(': [Talk]') content2.append([info,text]) if Show_Tell: if '[Tell]' in line: info,text=line.split(': [Tell]') content2.append([info,text]) if Show_Whisper: if '[Whisper]' in line: info,text=line.split(': [Whisper]') content2.append([info,text]) content2=pylab.array(content2) for i in xrange(content2.shape[0]): content2[i,1]=content2[i,1].replace('<','[') content2[i,1]=content2[i,1].replace('>',']') if len(content2[i,0].split(']'))>2: content2[i,0]=content2[i,0].split(']')[0][1:] +' '+ content2[i,0].split(']')[2] elif len(content2[i,0].split(']'))==2: content2[i,0]=content2[i,0].split(']')[0][1:] +' '+ content2[i,0].split(']')[1] content3=[] for i in xrange(content2.shape[0]): content3.append([content2[i,0].split(' ')[0],content2[i,0].split(' ')[1],content2[i,1]]) content3=pylab.array(content3) #Scan for speakers names=pylab.sort(content3[:,1]) name_List=[] for name in names: if (name in name_List) ==False: name_List.append(name) #Check if Speaker name contains board syntax for i in xrange(len(name_List)): if ('[' in name_List[i]) and not(']' in name_List[i].split('[')[-1]): name_List[i]=name_List[i]+']' for j in xrange(content3.shape[0]): if content3[j,1] in name_List[i]: content3[j,1]=name_List[i] color=['AntiqueWhite','Aqua','Aquamarine','Blue','BlueViolet','Brown','BurlyWood','Chartreuse','Chocolate','Coral','CornflowerBlue','Cornsilk','Crimson','DarkGoldenRod','DarkGreen','DarkOrange','DimGray','ForestGreen','Gold','GreenYellow','IndianRed','Khaki','LightSalmon'] names_to_color={name_List[i]:color[i] for i in xrange(len(name_List))} if Color_Speaker: for i in xrange(content3.shape[0]): content3[i,2]=content3[i,2].replace('white',names_to_color[content3[i,1]]) if Color_Speaker_Emote: for i in xrange(content3.shape[0]): content3[i,2]=content3[i,2].replace('lightgreen',names_to_color[content3[i,1]]) if Color_Name: for i in xrange(content3.shape[0]): content3[i,1]='[color='+names_to_color[content3[i,1]]+']'+content3[i,1]+'[/color]' with open('/home/aldero/Log_Forum.txt','w') as f: #<------ Pfad zur Output Datei if Loginfo==True: if Show_Talk and Show_Tell and Show_Whisper: f.write('Das Log zeigt private Nachrichten, geflüsterten Text und normalen Chat an. \n') elif (Show_Talk and not Show_Tell and not Show_Whisper): f.write('Das Log zeigt [b]keine[/b] private Nachrichten, [b]keine[/b]geflüsterten Nachrichten und normalen Chat an. \n') elif (not Show_Talk and Show_Tell and not Show_Whisper): f.write('Das Log zeigt [b]nur[/b] private Nachrichten, [b]keine[/b] geflüsterten Nachrichten und [b]keinen[/b] normalen Chat an. \n') f.write('Folgende Sprecher tauchen in diesem Skript auf: \n') for name in name_List: f.write('[color='+names_to_color[name]+']'+name+'[/color] \n' ) f.write('\n \n \n') if Outputformat=='Block': for i in xrange(content3.shape[0]): if i==0: f.write('[b]'+content3[i,0]+' [i]'+ content3[i,1] +'[/i] :[/b] \n' +content3[i,2]) else: if content3[i,1]==content3[i-1,1]: f.write('\t \t'+content2[i,1]) else: f.write('[b]'+content3[i,0]+' [i]'+ content3[i,1] +'[/i] :[/b] \n' +content3[i,2]) elif Outputformat=='Line': for i in xrange(content3.shape[0]): f.write('[b]'+content3[i,0]+' [i]'+ content3[i,1] +'[/i] :[/b] ' +content3[i,2]) f.close() #""" Unter Einstellungen kann man im Skript jetzt selbst Einstellen was angezeigt wird und wie der Text eingefärbt wird. Zitat: Das Log zeigt keine private Nachrichten, keinegeflüsterten Nachrichten und normalen Chat an.
Folgende Sprecher tauchen in diesem Skript auf: Ameng [SL] Amua Neftarie Tua von Kassar Bartlen Lenbach Burgwache Elona Wolkenmeer Geli'tar Fira Feuerschweif Kaeri Jessica Telarion von Artief Lucian Grave Ralthus von Hohezinn Renata Jolana de Teril Risaku Hiroki 19:46 Ralthus von Hohezinn : *mustert die Frau zu seiner linken* 19:47 Fira Feuerschweif Kaeri : *Die grün erstrahlenden Augen schauen zu Ralthus hinauf als sie sich ihm zuwendet. Sie faltet ihre Hände andächtig vor ihrem Schoß.* 19:49 Ralthus von Hohezinn : *mustert die Robe und dann wieder das Gesicht* 19:49 Ralthus von Hohezinn : *legt die Stirn in Falten* 19:49 Fira Feuerschweif Kaeri : *Die elfischen Züge in ihrem Gesicht sind unübersehbar. Ebenso die Ansätze des flammend roten Haares welches sich unter der Kapuze zeigt.* 19:50 Fira Feuerschweif Kaeri : Uluvathae, Ralthus. *Spricht sie im weichen klang der elfischen Stimme.* 19:50 Ralthus von Hohezinn : Fira? 19:51 Fira Feuerschweif Kaeri : Avavaen. 19:52 Ralthus von Hohezinn : Du bist gestorben? *ungläubig* 19:53 Fira Feuerschweif Kaeri : Ich bin verbrannt und aus meiner Asche wiederauferstanden auf den Willen der Mutter Mystra hin. 19:53 Ralthus von Hohezinn : Und sie gab dir diese Form? 19:53 Fira Feuerschweif Kaeri : Sie ist notwendig Ralthus. Nur eine Elfe vermag Devon zu bezwingen wie du weißt. 19:54 Amua Neftarie Tua von Kassar : Grüße allerseits 19:54 Ralthus von Hohezinn : *nickt* Sie stehen uns also doch bei. 19:54 Ralthus von Hohezinn : *nickt gen Amua* Grüße Baronin. 19:54 Fira Feuerschweif Kaeri : Mystra steht den Tapferen immer bei. 19:54 Fira Feuerschweif Kaeri : Uluvathae 19:55 Ralthus von Hohezinn : Gehen wir in den Sitzungsraum? 19:55 Fira Feuerschweif Kaeri : Avavaen, ich bin auf die Reaktionen gespannt. 19:56 Ralthus von Hohezinn : *spricht dann noch etwas leiser* |
Autor: | Necrobaw [ So 23. Nov 2014, 17:32 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
nice. |
Autor: | Ameng Xilo [ So 23. Nov 2014, 17:57 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Und wie genau nutze ich das konkret für Leute, die zum ersten Mal von Python hören? Heruntergeladen habe ich mir das Python 2.7.8 schon und den Pfad meiner Logdatei hab ich an der angegebenen Stelle hinterlegt. Aber wie bringe ich das Skript da rein und wie sorge ich dafür, dass es das ausführt? |
Autor: | Desmond [ So 23. Nov 2014, 19:12 ] |
Betreff des Beitrags: | Re: Python Skript zum Logs verarbeiten. |
Welches Betriebssystem benutzt du? Ich empfehle das Paket hier: http://sourceforge.net/projects/winpyth ... 7/2.7.6.3/ Da ist Python drin und eine gute Entwicklungsumgebung (Spyder) In der erstellt man ein neues File und kopiert den Text von hier einfach rein. Dann die Anpassungen und man kann die Datei durchlaufen lassen. (Grünes Dreieck ob in der Werkzeugleiste) |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |