Error beim ausgeben von Datei-Inhalten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
EmilEmilchen
User
Beiträge: 10
Registriert: Freitag 23. Oktober 2020, 12:20

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'
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

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.
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

@EmilEmilchen: Und ganz wichtig: Dein Code sucht die Textdatei im aktuellen Arbeitsverzeichnis. Das ist nicht zwangsläufig das Verzeichnis, in dem das Script liegt.
EmilEmilchen
User
Beiträge: 10
Registriert: Freitag 23. Oktober 2020, 12:20

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..
EmilEmilchen
User
Beiträge: 10
Registriert: Freitag 23. Oktober 2020, 12:20

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...
EmilEmilchen
User
Beiträge: 10
Registriert: Freitag 23. Oktober 2020, 12:20

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!
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

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?
EmilEmilchen
User
Beiträge: 10
Registriert: Freitag 23. Oktober 2020, 12:20

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.
EmilEmilchen
User
Beiträge: 10
Registriert: Freitag 23. Oktober 2020, 12:20

Nochmals vielen Dank, Problem behoben! :) Einfach über die Intigrierte Shell von VS Code "Get-Location" eingeben, dann wird das Arbeitsverzeichnis!
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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.
Antworten