Seite 1 von 1

Zeilen aus TXT-Datei selektieren

Verfasst: Mittwoch 26. Januar 2011, 20:03
von pydet
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.

Re: Zeilen aus TXT-Datei selektieren

Verfasst: Mittwoch 26. Januar 2011, 20:10
von Barabbas
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

Re: Zeilen aus TXT-Datei selektieren

Verfasst: Mittwoch 26. Januar 2011, 20:19
von cofi

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 :)