Zeilen aus TXT-Datei selektieren

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
pydet
User
Beiträge: 1
Registriert: Mittwoch 26. Januar 2011, 19:39

Liebe Python-Fachleute,
ich bin absoluter Anfänger (und als alter Radio- Fernsehtechniker eher der analogen Welt zugewant) und beschäftige mich seit einiger Zeit mit Python.
Mein Problem:
Ich möchte aus einer Datei mit z. B. folgendem Inhalt:
123
+ABC

D0465C
D0467A
die Zeilen mit D0... auslesen und untereinander in eine neue Datei schreiben.
Ich habe bereits gefunden, wie ich mit open, read, read, write Daten aus der alten in die neue Datei schreiben kann.
Was mir nicht gelingt, ist das selektieren der Daten. Dann fehlt mir noch die Methode zur Umwandlung von hex in bin.
Wahrscheinlich für euch alte Hasen kein Problem, ich wäre für einen Tipp dankbar.
Danke schon mal im Voraus.
Barabbas
User
Beiträge: 349
Registriert: Dienstag 4. März 2008, 14:47

Hallo,

wenn du die Datei zeilenweise ausliest (du kannst einfach über ein File-Object iterieren - dazu gibt es viele Beispiele hier im Forum), kannst du jede Zeile mit der Methode .startswith("D0") darauf überprüfen, ob sie mit der genannten Zeichenkette beginnt.

Umwandeln von Hex geht mit der Funktion int:

Code: Alles auswählen

>>> int("D0467A", 16)
13649530
Besten Gruß,

brb
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Code: Alles auswählen

from contextlib import nested

with nested(open("in", "r"), open("out", "w")) as (fin, fout):
    fout.writeall(("{0:b}".format(int(line[:-1], 16)) for line in fin if line.startswith("D0")))
Ungetestet.

P.S: Willkommen im Forum :)
Antworten