Hallo!
Wie gehts meinem besten mann Voges?:)
Also ich habe das Projekt jetzt nochmal genau abgesteckt.
Ziel ist es jetzt über eine HTML Seite die gewünschte Seite in ein edit Feld einzutragen wobei dann der Name an das Python Programm übergeben wird.Und das Ergebnis wie oft auf diese Seite geklickt wurde und ob intern oder extern auf Sie zugegriffen wurde soll wieder auf einer HTML Seite dann ausgegeben werden. Das Python Programm wird auf einem Zope Server liegen.
Das Zweite ist das das man in einem edit feld einen Monat eingibt (oder auch schon 12 buttons vorhanden sind mit den Monatsnamen) und eine Komplette Statistik ausgegeben werden soll über alle seiten in der server log und wie oft auf diese Geklickt wurde.
So Für das zweite Problem hab ich mir gedacht das ich wieder die log in felder aufteile und wieder schau welche Seiten es dort gibt und schreibe sie dann in eine Liste.
Code: Alles auswählen
#!/usr/bin/env python
import string
f =open ("C:/windows/temp/test.txt", 'r')# einlesen der log Datei
L =[]
for line in f.readlines():
linearray = line.split("|")
if linearray[3] == " view " :
L = [L, linearray[4]]
print L
f.close()
Kann man das so in etwa machen? Also die Seiten hat er alle richtig in eine Liste geschrieben doch sieht sie ein bißchen komisch aus oder (viele klammern)
[[[[[[[[[[[], ' LVIT.PaB '], ' LVIT.PaB '], ' LVIT.PaBplan '], ' LVIT.PaBteam '], ' LVIT.PaC '], ' LVIT.PaCplan '], ' LVIT.PaE '], ' LVIT.PaEPlan '], ' LVIT.WebHome '], ' LVIT.PaF '], ' LVIT.PaFplan ']
Ein weiteres Problem ist das einige Seite jetzt doppelt sind. Kennt jemand einen Ansatz für mich wie ich die auschließen kann?
Ist meine Idee überhaupt richtig es so zu machen um dann für jede Seite aus der Liste die Klicks dann wieder zu zählen?Oder gibt es eine bessere Lösung?
Nun nochmal zu meinem letzten Quelltext.
Code: Alles auswählen
#!/usr/bin/env python
import sys
if len(sys.argv) != 2: sys.exit(0)
f =open ("test.txt", 'r')
zaehler = 0
for line in f.readlines():
linearray = line.split("|")
if linearray[3] == " view " and linearray[4].strip() == sys.argv[1]:
zaehler += 1
f.close()
print zaehler
Kann mir jemand erklären wozu strip() nötig ist?
Ansonsten läuft es ganz gut unter windows.
Leider kommt der Quelltext aber unter unix nicht ganz hin da die felder nicht mehr stimmen. Grund dafür ist das bei der log.txt nicht das Zeilenende erkannt wird glaub ich.da die log unter unix so aussieht:
| 01 Oct 2003 - 10:16 | Main.TWikiGuest | view | LVIT.PaB | | 193.175.240.204 |*| 01 Oct 2003 - 10:16 | Main.TWikiGuest | view | LVIT.PaBplan | | 193.175.240.204 |*| 01 Oct 2003 - 10:17 | Main.FrankMoritz | save | LVIT.PaBteam | | 193.175.240.236 |*| 01 Oct 2003 - 10:17 | Main.TWikiGuest | view | LVIT.PaBteam | | 193.175.240.236 |
stat dem stern ist es aber ein Schwarzes Rechteck der die zeilen nur trennt statt das sie wie in windwos alle untereinander stehen.
Weiß jemand wie ich das Problem lösen kann?
Meine letzte Frage zu ist: Da ich ja den Text erweitern will um die Anzeige ob die Ip extern ist oder intern kann ich wieder vergeleichen.
mit folgenden nummer die intern sind
193.175.240.*
172.30.30.*
192.168.*.*
Mein Problem beim String vergleich ist jetzt aber das ich nicht die kompletten nummern hab sondern nur den anfang da der rest ja immer anders sein kann.gibt es denn auch in python platzhalter um einen stringvergleich machen zu können?
Oh bitte erschießt mich nicht ich weiß ist ne <menge aber ich weiß noch so wenig aber ich versuche mich zu bessern doch glaub es dauert noch ne weile bis ich mal nen halber profi bin:)
schönen abend an alle
Ps:meine versuche den Quelltext einzurücken sind wieder gescheitert was mach ich nur falsch