Ich benutze Python Version 3.6 auf einem Windows-Rechner. Ich lese in einer Textdatei mit open()
und readlines()
. Nach dem Einlesen der Textdateizeilen möchte ich bestimmte Zeilen in eine neue Textdatei schreiben, aber bestimmte Zeilenbereiche ausschließen. Ich kenne die Zeilennummern der auszuschließenden Zeilen nicht. Die Textdateien sind massiv und der Bereich der auszuschließenden Zeilen variiert zwischen den Textdateien, die ich gerade lese. Es gibt bekannte Schlüsselwörter, nach denen ich suchen kann, um den Anfang und das Ende des auszuschließenden Bereichs aus der Textdatei zu finden, in die ich schreiben möchte.Python 3+, Textdatei einlesen und in neue Datei schreiben, ohne Zeilenumfang
Ich habe überall online gesucht, aber ich kann nicht scheinen, eine elegante Lösung zu finden, die funktioniert. Das Folgende ist ein Beispiel für das, was ich erreichen möchte.
a
b
BEGIN
c
d
e
END
f
g
h
i
j
BEGIN
k
l
m
n
o
p
q
END
r
s
t
u
v
BEGIN
w
x
y
END
z
Zusammenfassend möchte ich das oben in Python lesen. Schreiben Sie anschließend in eine neue Datei, schließen Sie jedoch alle Zeilen aus, die bei BEGIN beginnen und bei END-Schlüsselwörtern anhalten.
Die neue Datei sollte folgende Angaben enthalten:
a
b
f
g
h
i
j
r
s
t
u
v
z
Ich endete damit. Ich brauche keinen regulären Ausdruck in meiner speziellen Situation, also werde ich das Modul re nicht verwenden. Außerdem habe ich 'print (line, file = output_fh)' in output_fh.write (line) geändert, da die print-Anweisung folgende Warnung ausgelöst hat: Erwarteter Typ 'Optional [IO [str]]', stattdessen 'TextIOWrapper [str]' . Vielen Dank für Ihre Unterstützung! – jmm5351