Seite 1 von 1

split () Funktion einsetzen

Verfasst: Sonntag 20. Februar 2022, 21:49
von werhei14
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

Re: split () Funktion einsetzen

Verfasst: Sonntag 20. Februar 2022, 22:25
von __blackjack__
@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.

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