Ich arbeite derzeit an einem Programm, das die Protokollfehlerdatei liest und die Datei aus dem Befehlszeilenargument nimmt, dann muss ich die meisten wiederholten 25 Fehler drucken.python3 for loop funktioniert nicht mit urlopen
Zum Beispiel; (dies ist eine wirklich große Datei so dass ich nur & Paste paar Zeilen kopieren wird dies deutlich machen)
[Sun Oct 09 14:15:52 2011] [error] [client 64.15.156.151] script '**/var/www/html/myip.php**' not found or unable to stat
[Sun Oct 09 14:16:25 2011] [error] [client 64.15.156.151] script '**/var/www/html/myip.php**' not found or unable to stat
[Sun Oct 09 14:18:42 2011] [error] [client 123.166.54.36] File does not exist: **/var/www/html/deny2**
[Sun Oct 09 14:26:48 2011] [error] [client 66.249.68.178] File does not exist: **/home/ms10694/public_html/homepage/Midterm Project/zengarden-sample.html**
[Sun Oct 09 14:29:59 2011] [error] [client 64.15.156.151] script '**/var/www/html/myip.php**' not found or unable to stat
[Sun Oct 09 14:30:23 2011] [error] [client 38.99.97.53] File does not exist: /var/www/html/robots.txt**
[Sun Oct 09 14:30:23 2011] [error] [client 38.99.97.53] File does not exist: **/var/www/html/favicon.ico**
ich für Schleife jene bolded Adressen suchen in benötigen und die meisten sich wiederholenden 25 Fehler zu finden.
Mein Code sucht nach jeder Zeile enthält "/var.....+" aber aus irgendeinem Grund druckt es nur sehr zuerst "/var...+" auf Log-Fehler-Datei. Was fehlt mir hier?
#!/usr/bin/env python3
import urllib.request
import re
import sys
import os
Argument = sys.argv[1]
LogErrorFile = urllib.request.urlopen(Argument)
InBytes = LogErrorFile.read()
InString = InBytes.decode("utf8")
#for s in InString:
text = InString
for s in InString:
FindLines = re.findall('/var.+', text)
print (FindLines[0])
Vielen Dank! Ich musste urllib verwenden, also ging ich diesen Weg; Ich schickte die Fehlermeldungen in dir, damit ich dort vergleichen konnte ich auch die for-Schleife auf dic funktioniert, wie es sein sollte. – denizburak54