Datei nach Schlüsselwort durchsuchen und auslesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Kurtosis
User
Beiträge: 55
Registriert: Samstag 11. Dezember 2010, 14:32

Hallo,

ich möchte eine Textdatei (angenommen sie enthalte die Namen von Aquarienfischen und deren Ladenpreis) nach einem Schlüsselwort (z.B. Guppy) durchsuchen lassen und dann anschließend die Zeile auslesen und die Zusatzinformationen (z.B. Ladenpreis) herausfiltern. Wie geht man das am besten an und welche Funktionen sind hierfür sinnvoll?
Überlegt habe ich mir mittels einer Schleife, die Datei zeilenweise durchlaufen zu lassen, um dann abzubrechen, sobald das Schlüsselwort gefunden wurde. Anschließend soll die Zeile ausgelesen und weiterverarbeitet werden.

Ich hoffe, ihr könnt mir weiterhelfen. Vielen Dank schon mal!
BlackJack

@Kurtosis: Klingt doch schon mal nicht schlecht. Statt einer freien Textdatei könnte man vielleicht etwas Struktur rein bringen und eine CSV-Datei verwenden. Dafür gäbe es dann das `csv`-Modul in der Standardbibliothek.
Benutzeravatar
Kurtosis
User
Beiträge: 55
Registriert: Samstag 11. Dezember 2010, 14:32

@BlackJack: Danke für deinen Hinweis! Das Problem ist allerdings, dass ich das erstmal ganz allgemein und weitestgehend unabhängig vom Dateityp lösen möchte, d.h. auch für Dateien, bei denen nicht ordentlich spaltenweise Informationen eingetragen sind, sondern z.B. auch für Code-Dateien, in denen ich aber nach bestimmten Größen suchen möchte.
Benutzeravatar
Kurtosis
User
Beiträge: 55
Registriert: Samstag 11. Dezember 2010, 14:32

Nachtrag: Ich versuche das Problem mal mit Hilfe regulärer Ausdrücke anzugehen und mit den Funktionen search und findall u.a. zu arbeiten. Finde allerdings den Syntax von diesen Funktionen noch etwas verwirrend. :?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Kurtosis hat geschrieben:Überlegt habe ich mir mittels einer Schleife, die Datei zeilenweise durchlaufen zu lassen, um dann abzubrechen, sobald das Schlüsselwort gefunden wurde. Anschließend soll die Zeile ausgelesen und weiterverarbeitet werden.
Nehmen wir an, dein geöffnetes Dateiobjekt sei data und der Suchbegriff keyword, dann ist folgendes die Basisstruktur.

Code: Alles auswählen

def analyze_file(data, keyword):
    for line in data:
        if keyword in line:
            do_something(line)
Die Funktion do_something (die natürlich einen sinnvolleren Namen bekommen sollte) arbeitet dann mit der jeweils gefundenen Zeile.
liliput
User
Beiträge: 4
Registriert: Montag 16. Dezember 2019, 10:30

Hallo,

ich möchte ebenfalls eine CSV Datei nach Stichwörtern durchsuchen. Allerdings möchte ich nur die erste Zeile der CSV Datei durchsuchen aber nach zwei Stichwörtern (z.B. Versuchspunkt und Datum). Zudem soll, sofern beide Stichwörter nicht vorhanden sind, ein Pop up Fenster mit einer Warnung aufspringen. Eine Funktion mit dem Pop up Fenster habe ich bereits geschrieben. Allerdings weiß ich nicht wie ich den Code für zwei Keywords umschreiben kann (bitte verzeiht mir bin absoluter Neuling im Programmieren mit Python). Zudem öffnet sich das Pop up Fenster, wenn ich es als else-Bedingung einfüge bereits, wenn das erste Feld nicht das keyword enthält und dann so weiter bis das Keyword auftaucht. Ich hätte allerdings gerne, dass er die ganze erste Zeile nach den zwei Keywörtern durchsucht und dann das Pop up Fenster sich öffnet, sofern beide nicht existieren.
Würde euch gerne noch meinen Code zur Verfügung stellen, jedoch weiß ich nicht wie das genau funktioniert, sodass er die Formatierung beibehält. Habe diesbezüglich leider nichts in den FAQ's gefunden. Hilfe wäre auch hier sehr willkommen.

Vielen Dank schon mal und frohe Weihnachten.
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte einen neuen Thread aufmachen, statt sich an dieses schon sehr alte Thema dranzuhaengen. Und auch wenn eine Beschreibung der Aufgabenstellung gut ist, ist das Beschreiben von Code und was der nicht tut wenig hilfreich. Bitte den konkreten Code, und konkrete Fehlermeldungen komplett posten, und dabei die wichtigen code-tags nicht vergessen, damit man den lesen kann.
Antworten