Suche ersatz für grep in Python

UeB

Admiral Special
Mitglied seit
25.05.2002
Beiträge
1.084
Renomée
3
Standort
Stuttgart
Hallo ich habe ein Python-Programm geschrieben, dass diesen Code enthält, der grep aufruft:

Code:
from subprocess import call
from subprocess import Popen
from subprocess import PIPE

#ganz viel anderes Zeugs

searchPattern = r' ' +str(1+w*wMax)+ r'    \| ' +str(2+w*wMax)+ r'    \| ' +str(3+w*wMax)+ r'    '
			
count = Popen( ("grep", "-c", searchPattern, slFileName ), stdout=PIPE )
slNodes = int(count.stdout.read())
		
call( ("grep", searchPattern, slFileName ), stdout=slPerWing )
slPerWing.close()

kann mir jemand sagen, wie ich auf den Aufruf von grep verzichten kann und Python interne Funktionen stattdessen werde? Durch die Verwendung von grep setzt mein Programm unnötigerweise eine Unix-Umgebung voraus.

Vielen Dank im Voraus!
 
Hab ich das richtig verstanden du möchtest die Anzahl Treffer in einer Datei für deine Suchanfrage?

Solltest dich mal mit dem Modul "re" vertraut machen. Suche mal bei google nach "import re python".
Da solltest du was finden.

Im ungünstigigen Fall musst du noch die Datei als String einlesen und dann eine Suche über den String erledigen.

Vermutlich hast du dieses einfache Problem aber schon gelöst.
 
Ich möchte die Zeilen auf die, auf die searchPattern passt wMax verscheide Dateien rausschreiben. Ausderdem muss das Programm wissen wieviele Zeilen in die jeweilige gefunden wurden, deshalb wird grep 2 mal aufgerufen, wusste nicht wie man das mit grep in einen Befehl packt.

Ich hab mit die string Funktionen angeschauten aber keine gefunden, die eine ganze Zeile, auf die etwas zutrifft herrausschneidet. Also genau das was grep macht.

Deshalb hab ich hier gefragt.
 
Zurück
Oben Unten