Seite 1 von 1

Error beim ausgeben von Datei-Inhalten

Verfasst: Freitag 23. Oktober 2020, 12:32
von EmilEmilchen
Hallo allerseits,
ich habe ein Problem, ich will den Inhalt einer Datei ausgeben und weiter verarbeiten, ich habe also einen Ordner erstellt und in diesen meine Python-Datei und meine Text-Datei gelegt, z.B test.py u. test.txt. In die Python-Datei schreibe ich folgendes:

Code: Alles auswählen

datei = open('test.txt','r')
print(datei.read())
Führe ich das Script nun aus erhalte ich folgenden Fehler:

Code: Alles auswählen

    datei = open('textdatei.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'

Re: Error beim ausgeben von Datei-Inhalten

Verfasst: Freitag 23. Oktober 2020, 13:07
von Jankie
Die Datei die du öffnest stimmt nicht mit der in der Fehlermeldung überein, hast du deinen Code abgespeichert? Sind die Textdateien im gleichen Ordner wie das Skript?
Dateien öffnet man mit dem with Statement, da spart man sich das schließen, was bei dir sowieso fehlt.

Re: Error beim ausgeben von Datei-Inhalten

Verfasst: Freitag 23. Oktober 2020, 13:24
von sparrow
@EmilEmilchen: Und ganz wichtig: Dein Code sucht die Textdatei im aktuellen Arbeitsverzeichnis. Das ist nicht zwangsläufig das Verzeichnis, in dem das Script liegt.

Re: Error beim ausgeben von Datei-Inhalten

Verfasst: Samstag 24. Oktober 2020, 12:01
von EmilEmilchen
Jankie hat geschrieben: Freitag 23. Oktober 2020, 13:07 Die Datei die du öffnest stimmt nicht mit der in der Fehlermeldung überein, hast du deinen Code abgespeichert? Sind die Textdateien im gleichen Ordner wie das Skript?
Dateien öffnet man mit dem with Statement, da spart man sich das schließen, was bei dir sowieso fehlt.
Ja, die Textdateien sind im gleichen Ordner wie das Script..

Re: Error beim ausgeben von Datei-Inhalten

Verfasst: Samstag 24. Oktober 2020, 12:05
von EmilEmilchen
Jankie hat geschrieben: Freitag 23. Oktober 2020, 13:07 Die Datei die du öffnest stimmt nicht mit der in der Fehlermeldung überein, hast du deinen Code abgespeichert? Sind die Textdateien im gleichen Ordner wie das Skript?
Dateien öffnet man mit dem with Statement, da spart man sich das schließen, was bei dir sowieso fehlt.
Und das die Fehlermeldung nicht mit der Datei übereinstimmt welche ich öffne liegt daran das ich eigentlich auch "textdatei.txt" öffne, ich habe lediglich "textdatei.txt" in meinem Beitrag durch "test.txt" ersetzt und das in dem einen Fall in der eingefügten Fehlermeldung vergessen...

Re: Error beim ausgeben von Datei-Inhalten

Verfasst: Samstag 24. Oktober 2020, 12:11
von EmilEmilchen
sparrow hat geschrieben: Freitag 23. Oktober 2020, 13:24 @EmilEmilchen: Und ganz wichtig: Dein Code sucht die Textdatei im aktuellen Arbeitsverzeichnis. Das ist nicht zwangsläufig das Verzeichnis, in dem das Script liegt.
OK, vielen Dank für den Hinweis. Noch eine Frage, und zwar: Was ist denn das aktuelle Arbeitsverzeichnis? Hinweis: ich nutze Windoof 10!

Re: Error beim ausgeben von Datei-Inhalten

Verfasst: Samstag 24. Oktober 2020, 12:16
von sparrow
Windoof kenne ich nicht. Ich kenne Windows. Vielleicht ist das bei Windoof anders, aber bei Windows ist das "Arbeitsverzeichnis" das aktuelle Verzeichnis. Das ist nicht zwangsläufig das Verzeichnis, in dem das Script liegt.
Vielleicht hilft hier auch eine kurze Befragung der Suchmaschine deiner Wahl, um dein Wissen zu vertiefen.

Wie startest du das Script?

Re: Error beim ausgeben von Datei-Inhalten

Verfasst: Samstag 24. Oktober 2020, 12:33
von EmilEmilchen
sparrow hat geschrieben: Samstag 24. Oktober 2020, 12:16 Windoof kenne ich nicht. Ich kenne Windows. Vielleicht ist das bei Windoof anders, aber bei Windows ist das "Arbeitsverzeichnis" das aktuelle Verzeichnis. Das ist nicht zwangsläufig das Verzeichnis, in dem das Script liegt.
Vielleicht hilft hier auch eine kurze Befragung der Suchmaschine deiner Wahl, um dein Wissen zu vertiefen.

Wie startest du das Script?
OK, vielen Dank, das Script starte ich über die Python-Erweiterung von VS Code.
P.S.
Windoof, naheliegenderweise, scherzhaftige bezeichnung für Winows.

Re: Error beim ausgeben von Datei-Inhalten

Verfasst: Samstag 24. Oktober 2020, 12:38
von EmilEmilchen
Nochmals vielen Dank, Problem behoben! :) Einfach über die Intigrierte Shell von VS Code "Get-Location" eingeben, dann wird das Arbeitsverzeichnis!

Re: Error beim ausgeben von Datei-Inhalten

Verfasst: Montag 26. Oktober 2020, 08:26
von /me
Wenn du programmgesteuert sicherstellen möchtest, dass die Datei aus dem gleichen Verzeichnis wie das Skript gelesen wird, dann kannst du z.B. auf pathlib zurückgreifen.

Code: Alles auswählen

import pathlib
filename = pathlib.Path(__file__).parent / 'myfilename.txt'
print(filename)
Da __file__ immer Pfad und Namen des aktuellen Skripts enthält wird der Pfad somit automatisch angepasst.