Hallo,
warum läuft dieser Code nicht?
Wie müsste ich codieren?
datei = open('Datei.txt','r')
txt_tokenised = datei.split()
print(txt_tokenised)
#AttributeError: '_io.TextIOWrapper' object has no attribute 'split'
Gruß
Werner
split () Funktion einsetzen
- __blackjack__
- User
- Beiträge: 14328
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@werhei14: Weil Dateiobjekte keine `split()`-Methode haben. Du möchtest den *Inhalt* der Datei vielleicht lieber einlesen, und dann `split()` *darauf*, also auf der Zeichenkette, aufrufen‽
Dateien sollte man wo es möglich ist mit der ``with``-Anweisung zusammen öffnen, damit die Datei auch garantiert wieder geschlossen wird, wenn der Programmfluss den ``with``-Block verlässt. Und bei Textdateien sollte man explizit die Kodierung angeben.
Bitte keine kryptischen Abkürzungen oder Yoda-mässige Reihenfolgen bei Namen verwenden. Wenn man `tokenized_text` meint, sollte man nicht `txt_tokenized` schreiben. Wobei einfach `tokens` kürzer wäre.
Dateien sollte man wo es möglich ist mit der ``with``-Anweisung zusammen öffnen, damit die Datei auch garantiert wieder geschlossen wird, wenn der Programmfluss den ``with``-Block verlässt. Und bei Textdateien sollte man explizit die Kodierung angeben.
Bitte keine kryptischen Abkürzungen oder Yoda-mässige Reihenfolgen bei Namen verwenden. Wenn man `tokenized_text` meint, sollte man nicht `txt_tokenized` schreiben. Wobei einfach `tokens` kürzer wäre.
Code: Alles auswählen
#!/usr/bin/env python3
from pathlib import Path
def main():
tokens = Path("Datei.txt").read_text(encoding="utf-8").split()
print(tokens)
if __name__ == "__main__":
main()„Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.“ — Brian W. Kernighan
