Re: Textdatei einlesen und bearbeiten
Verfasst: Donnerstag 29. Oktober 2020, 10:33
Warum packst Du immer alles in Zitate?
Les doch einfach mal Deinen Code:
Erst wird eine Datei geöffnet, dann das builtin list mit einer leeren Liste überschrieben (keine gute Idee, wird auch gar nicht gebraucht).
Dann wird listen an eine Leere liste gebunden, was auch nicht gebraucht wird.
Dann liest Du in einer for-Schleife die erste Zeile der Datei in `line`.
Dann liest Du den Rest der Datei, packst die Liste der Zeilen wiederum in eine Liste mit dann einem Element.
Dann iterierst Du über diese Liste, so dass das eine Element an wörter gebunden wird.
wörter enthält jetzt also alle Zeilen, außer der ersten Zeile. Das wird aber gar nicht benutzt. Da die for-Schleife exakt einmal durchlaufen wird und die Laufvariable nicht benutzt wird, kann man die for-Schleife auch gleich weglassen.
Jetzt nimmst Du `line`, was ja die erste Zeile enthält, und ersetzt darin alle i durch 1 und bindest diesen String an listen, was wiederum ein total irreführender Name ist. Das gibst Du dann aus.
Wenn Du also Deinen Code lesen würdest, würdest Du merken, dass da viele komische Dinge passieren, die Du sicher nicht so willst. Wenn man den ganzen Quatsch weg läßt bleibt:
Beim Programmieren kommt man mit Raten nicht weit. Bau Dein Programm Schritt für Schritt mit einzelnen Komponenten auf, die Du verstanden und getestet hast.
Les doch einfach mal Deinen Code:
Code: Alles auswählen
with open("test.txt", "r", encoding='UTF-8') as f:
list = []
listen = []
for line in f:
list = [f.readlines()]
for wörter in list:
listen = line.replace("i","1")
print(listen)
Dann wird listen an eine Leere liste gebunden, was auch nicht gebraucht wird.
Dann liest Du in einer for-Schleife die erste Zeile der Datei in `line`.
Dann liest Du den Rest der Datei, packst die Liste der Zeilen wiederum in eine Liste mit dann einem Element.
Dann iterierst Du über diese Liste, so dass das eine Element an wörter gebunden wird.
wörter enthält jetzt also alle Zeilen, außer der ersten Zeile. Das wird aber gar nicht benutzt. Da die for-Schleife exakt einmal durchlaufen wird und die Laufvariable nicht benutzt wird, kann man die for-Schleife auch gleich weglassen.
Jetzt nimmst Du `line`, was ja die erste Zeile enthält, und ersetzt darin alle i durch 1 und bindest diesen String an listen, was wiederum ein total irreführender Name ist. Das gibst Du dann aus.
Wenn Du also Deinen Code lesen würdest, würdest Du merken, dass da viele komische Dinge passieren, die Du sicher nicht so willst. Wenn man den ganzen Quatsch weg läßt bleibt:
Code: Alles auswählen
with open("test.txt", "r", encoding='UTF-8') as lines:
first_line = next(lines)
transformed_line = first_line.replace("i", "1")
print(transformed_line )