Ich führe einige sehr gesprächige Programme, die so viele wichtige Dinge ausstrahlen, dass ich ihre Ausgabe in mehrere Dateien teilen möchte, basierend auf Mustern in dem, was sie sagen.Gibt es in Python/Java ein dateiähnliches Objekt, das Zeilen basierend auf dem Regex-Mustervergleich filtern kann?
Also ich glaube, ich brauche ein Datei-ähnliches Objekt, das Zeilen abfangen kann, die bestimmten regulären Ausdrücken entsprechen und sie in verschiedene tatsächliche Dateien schreiben. Nicht übereinstimmende Zeilen würden in die Standarddatei übertragen. Die googlenets sind nicht hilfreich.
ich mir vorstellen, es wie folgt aus:
outputFile = FilteringFile('unfiltered-output.txt', 'w')
outputFile.addFilter(re.compile(r'spam'), 'regarding-spam.txt')
outputFile.addFilter(re.compile(r'eggs'), 'regarding-eggs.txt')
Jetzt kann ich outputFile.write('...')
und alle Linien mit spam
zu tun hat, wird sicher in nur regarding-spam.txt
geschrieben werden, und alle, die Linien mit eggs
zu tun wird sicher nur in regarding-eggs.txt
geschrieben. Alle diese Zeilen, die weder mit spam
noch eggs
zu tun haben, würden sicher in unfiltered-output.txt
übergeben werden. Abgesehen von dieser inneren Magie verhält sich outputFile
wie eine gewöhnliche Datei.
Hat Python oder Java schon so etwas? Wenn nicht, wie würden Sie solche Dinge effizient erledigen? Ich werde eine Lösung in beiden Sprachen akzeptieren, da mein Code auf Jython läuft.