Ups, ich ich bin mit einem anderen Thread durcheinander gekommen...milexy86 hat geschrieben:@snafu: Wird doch alles auch nur in python gemacht
Durch bestimmte Textsegmente iterrieren
Hallo,
ja, es funktioniert jetzt!
Wie kann ich aber einen Tuple an strings suchen, also beispielsweise:
Muss ich im Attribut "search_text" bei der Funktion "wanted_lines" diese Möglichkeit irgendwie explizit angeben?
ja, es funktioniert jetzt!
Wie kann ich aber einen Tuple an strings suchen, also beispielsweise:
Code: Alles auswählen
search_text = '\\Algorithm', '\\Libraries'
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Passe Zeile 10 (Code von /me) an mit
(und am besten aenderst du `search_text` noch zum Plural)
Die Alternative sind Regular Expressions.
Code: Alles auswählen
any(needle in line for needle in search_text)
Die Alternative sind Regular Expressions.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Wenn du ein Tupel aus Möglichkeiten definierst, dann musst du überprüfen ob mindestens einer der Einträge in der Zeile zu finden ist. Zuerst nennen wir den Bezeichner mal search_texts. Das hat zwar keine Auswirkungen auf den Ablauf des Codes, beschreibt den Inhalt aber korrekter.milexy86 hat geschrieben:Wie kann ich aber einen Tuple an strings suchen, [...]
Um abzufragen ob eine der Möglichkeiten passt kann man any verwenden. any erhält als Parameter ein Iterable dessen zurückgelieferte Elemente überprüft werden. Diese Elemente sollten also angeben, ob die Suche zutrifft. Benötigt wird also eine Schleife die alle Elemente von search_texts durchläuft und für jedes zurückmeldet ob es in line vorhanden ist. Wenn man das kombiniert gelangt man zu folgendem Code:
Code: Alles auswählen
if wanted and any(s in line for s in search_texts):
Edit: Wenn hier zwei erfahrene Leute den gleichen Code vorschlagen, dann ist das vermutlich korrekt.
Hallo,
danke euch nochmals für die umfangreiche Unterstützung und die Tipps. Bin jetzt um einiges an Wissen reicher geworden
Die Lösung mit "any" funktioniert.
Ich habe das auch mit regulären ausdrücken gelöst:
danke euch nochmals für die umfangreiche Unterstützung und die Tipps. Bin jetzt um einiges an Wissen reicher geworden
Die Lösung mit "any" funktioniert.
Ich habe das auch mit regulären ausdrücken gelöst:
Code: Alles auswählen
import re
with open("input_file.txt", "r") as infile, open("output_file.txt", 'w') as outfile:
for result in re.findall('source_code_includes(.*?)\}', infile.read(), re.S):
for line in result.split('\n'):
if re.search('(Algorithm|Libraries)', line):
outfile.write(line + '\n')