Seite 1 von 1

Dateien werden nicht korrekt eingelesen

Verfasst: Donnerstag 25. Oktober 2007, 13:35
von vikingrussel
Wie die Überschrift schon sagt, werden in diesem Script die Dateien nicht eingelesen

Code: Alles auswählen

# -*- coding: cp1252 -*-
from lxml import etree
import codecs
import string
import re, sys
from os import listdir
from os.path import getmtime
from time import ctime

# Öffnen von Log-Datei(en)
sourceDir = 'C:\\Dokumente und Einstellungen\\maruscma\\Eigene Dateien\\backup-log\\'
sourceFilePattern = re.compile ('backup[0-1]+\.log')

#Suchmuster
medium = re.compile('^Mediumname: "(?P<m>[^"]+)') 
drive = re.compile('^Sicherung von (?P<d>.*)')
art = re.compile('^Sicherungsart: (?P<a>.*)')
datebeg = re.compile ('^Sicherung begonnen am (?P<b>[0-9\.]+) um (?P<n>[0-9:]+)')
dtimebeg = re.compile ('^Sicherung begonnen am (?P<b>[0-9.]+)')
dateend = re.compile('^Sicherung abgeschlossen am (?P<e>[0-9\.]+) um (?P<v>[0-9:]+)')
dtimeend = re.compile('^Sicherung abgeschlossen am (?P<e>[0-9\.]+)')
directory = re.compile('^Verzeichnisse: (?P<i>.*)')
files = re.compile('^Dateien: (?P<f>.*)')
time = re.compile('^Zeit: (?P<t>.*)')
error = re.compile('^Der Vorgang wurde (?P<r>.*)')
warning = re.compile('^Warnung: (?P<x>.*)')
reason = re.compile('^Ursache: (?P<y>.*)')
destination = re.compile('^Aktives Sicherungsziel: (?P<z>.*)')

# Gibt Liste aller Dateien mit Tupel aus Dateiname und Aenderungsdatum,
# sortiert nach  Aenderungsdatum, zurueck
def FileSortByDate(dir, pattern):
    fileList = []
    dateList = []
    returnList = []
    for file in listdir(dir):
        if pattern.match(file):
            fileModifyDate = getmtime(dir+file)
            dateList.append(fileModifyDate)
            fileList.append((dir+file, fileModifyDate))
        dateList.sort()

    for date in dateList:
        n = 0
        for file in fileList:
            if file[1] == date:
                returnList.append( file ) 
                fileListRest = fileList[n+1:]
                fileList = fileList[:n]
                fileList.extend(fileListRest)
                continue
            n += 1
    return( returnList )

def readin(file):
    logfile = codecs.open(file[0], 'r', 'utf-16')
    inhaltlist = search(logfile)
    logfile.close()
    return inhaltlist

#listcount = -1


#sys.exit()
def search(logfile):
    inhaltlist = []
    inhaltdic = {}
    listcount = -1
    for z in logfile.readlines():
        #key, inhalt, listcount = suchen(listcount)      
        #print key, inhalt
        #key = inhalt = ''
        z1 = medium.search(z)
        if z1:
            medium1 = z1.group('m')
                        
        z2 = drive.search(z)
        if z2:
            listcount += 1
            drive2 = z2.group('d')
            inhaltdic['drive'] = drive2
            inhaltlist.append(inhaltdic)
        
        z3 = art.search(z)
        if z3:
            listcount += 1
            art3 = z3.group('a')
            inhaltdic['art'] = art3
            inhaltlist.append(inhaltdic)
        
        z4 = datebeg.search(z)
        if z4:
            listcount += 1
            datum4 = z4.group('b')
            uhrzeit10 = z4.group('n')
            inhaltdic['datebeg'] = uhrzeit10
            inhaltlist.append(inhaltdic)
        
        z5 = dateend.search(z)
        if z5:
            listcount += 1
            datum5 = z5.group('e')
            uhrzeit11 = z5.group('v')
            inhaltdic['dateend'] = uhrzeit11
            inhaltlist.append(inhaltdic)
        
        z6 = directory.search(z)
        if z6:
            listcount += 1
            verzeichnisse6 = z6.group('i')
            inhaltdic['directory'] = verzeichnisse6
            inhaltlist.append(inhaltdic)
        
        z7 = files.search(z)
        if z7:
            listcount += 1
            dateien7 = z7.group('f')
            inhaltdic['files'] = dateien7
            inhaltlist.append(inhaltdic)
        
        z8 = time.search(z)
        if z8:
            listcount += 1
            dauer8 = z8.group('t')
            tformat = re.findall(r'(\d+) ', dauer8)
            inhaltdic['time'] = tformat
            inhaltlist.append(inhaltdic)
            
        z9 = error.search(z)
        if z9:
            listcount += 1
            fehler9 = z9.group('r')
            inhaltdic['error'] = fehler9
            inhaltlist.append(inhaltdic)
        else:
            fehler9 = ''
            inhaltdic['error'] = fehler9
            inhaltlist.append(inhaltdic)

        z11 = dtimebeg.search(z)
        if z11:
            listcount += 1
            dtimebeg11 = z11.group('b')
            inhaltdic['dtimebeg'] = dtimebeg11
            inhaltlist.append(inhaltdic)
        
        z12 = dtimeend.search(z)
        if z12:
            listcount += 1
            dtimeend12 = z12.group('e')
            inhaltdic['dtimeend'] = dtimeend12
            inhaltlist.append(inhaltdic)
        
        z13 = warning.search(z)
        if z13:
            listcount += 1
            warning13 = z13.group('x')
            inhaltdic['warning'] = warning13
            inhaltlist.append(inhaltdic)
        else:
            warning13 = ''
            inhaltdic['warning'] = warning13
            inhaltlist.append(inhaltdic)
        
        z14 = reason.search(z)       
        if z14:
            listcount += 1
            reason14 = z14.group('y')
            inhaltdic['reason'] = reason14
            inhaltlist.append(inhaltdic)
        else:
            reason14 = ''
            inhaltdic['reason'] = reason14
            inhaltlist.append(inhaltdic)

        z15 = destination.search(z)
        if z15:
            listcount += 1
            destination15 = z15.group('z')
            inhaltdic['destination'] = destination15
            inhaltlist.append(inhaltdic)
        print 1, inhaltlist
                
        #nhaltdic[key] = inhalt
        #inhaltlist.append(inhaltdic)
        return inhaltlist
        

#Einlesen der Zeilen nach Suchmuster
d = FileSortByDate(sourceDir, sourceFilePattern)
for v in d:
    inhalt = readin(v)
Wäre um Hilfe sehr dankbar
MfG VikingRussel

Verfasst: Donnerstag 25. Oktober 2007, 14:43
von vikingrussel
hat sich erledigt, der Fehler lag woanders.
in der letzten Zeile von der letzten Funktion ist das `return inhaltlist` zu weit eingerückt gewesen