Python Programm/Script erkennt die Textdatei nicht

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
Hugin
User
Beiträge: 7
Registriert: Freitag 10. Januar 2020, 10:50

Hallo zusammen,

ich bin ein blutiger Anfänger und hangel mich grad durch ein paar Beispiele zum programmiern in YT.
Nun wollt ich das Pi Programm mal nachschreiben das Gravitas da erklärt.

Ich hab eine Text Datei angelegt mit der Zahl Pi mit 1.000.000 Stellen nach dem Komma mit den Namen Pi.txt. Die übrigens im gleichen Ordner ist wie das Pi.py Script.

Code: Alles auswählen

with open("pi.txt", "r") as f:
       pi = f.read()
nun bekomme ich die Fehlermeldung das die Pi.txt Datei nicht gefunden wird.

File "c:/Users/Hans Dampf/Documents/Python/Python/Pi/Pi.py", line 5, in <module>
with open("pi.txt", "r") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'pi.txt'[/code]


Auch wenn ich den kompletten Dateipfad probiere kommt die selbe Meldung

Ich hab den VS Code Editor und Python 3.8 installiert
Python ist in PATH eingetragen

Die Suchfunktion brachte mich zwar zu einem ähnlichen Problem aber nicht zur Lösung. Auch google nicht.
Sorry.. bin wirklich blutiger Anfänger. Also hab vorher garnix mit programmieren zu tun gehabt. Basic gabs mal in der Hauptschule.

Wäre nett wenn mir hier einer das Problem erklären könnte.

Vielen Dank im vorraus
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da musst du einen Vertipper oder so im Pfadnamen haben. Nimm den Explorer & navigier zur Textdatei. Und dann kopier dir den Pfad da raus, zb über die Eigenschaften. ACHTUNG: \ ist ein escape Zeichen! Damit kann uU dein Problem zusammenhängen! Benutz daher r-strings oder doppelte \ !
Hugin
User
Beiträge: 7
Registriert: Freitag 10. Januar 2020, 10:50

Super.. Danke Dir!

Mit der Pfadangabe klappts nun.. hab vorher keine doppel \\ gehabt. *peinlich*

Aber warum erkennt Python die Datei in dem eigenen Script Ordner denn nicht? Muss man sowas in Python einstellen?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das hat mit Python erstmal nichts zu tun. Das ist das Verhalten des OS. Wenn ich dich vor meinen Rechner dir sage “mach mal ‘Datei.txt’ auf” - dann ist deine erste frage doch auch “und in welchen Ordner liegt die?”. Das ist die Natur relativer Pfade, die sind immer relativ zu etwas was für jeden Prozess existiert - das “working Directory”. Deshalb geht der open-call hin & packt das WD davor, wenn er einen relativen Pfad bekommt. Und wo das WD ist, das hat NICHTS mit dem Ort des Skriptes zu tun. Oder des Python executables (das ja nochmal woanders liegt). Wenn du ein äquivalentes Programm in C oder so schreibst, sieht das also genauso aus.

Was man als Programmierer in Python wenigstens machen kann: die Datei relativ zum Skript legen, und mit der Variable __file__ arbeiten. Das ist der Pfad des aktuellen Skriptes, und wenn man den als Bezugspunkt nimmt, ist man robuster unterwegs.
Hugin
User
Beiträge: 7
Registriert: Freitag 10. Januar 2020, 10:50

Klingt logisch ;)
Danke Dir für deine mühe! Ich hab da noch n haufen zu lernen.
Antworten