Dateien Öffnen

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
WannaBee
User
Beiträge: 1
Registriert: Dienstag 7. April 2020, 10:22

Hi Leute,

ich lerne gerade Python. Mein Problem ist das Python einen einfache text Datei nicht lesen möchte. Ich schreibe folgenden Code und habe die text Datei im gleichen Ordner abgelegt:

file1 = open("employees.txt", "r")
print(file1.read())



Fehler:

Traceback (most recent call last):
File "/Users/apple/PycharmProjects/hellow world /app.py", line 3, in <module>
file1 = open("employees.txt", "r")
FileNotFoundError: [Errno 2] No such file or directory: 'employees.txt'
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mal abgesehen von schlechten Namen (file1 - warum nicht employees_file?) und das du das with-statement benutzen solltest, um Dateien sauber zu oeffnen und zu schliessen, unterliegst du einem Fehlschluss: relative Pfadnamen wie deiner werden NICHT relativ zum Skript oder Modul das du ausfuehrst aufgeloest. Sondern relativ zum Arbeitsverzeichnis. Und das hat deine IDE offensichlich irgendwohin gestellt.

Ein weg das zu machen ist sich ueber die __file__-Variable dahin zu hangeln:

Code: Alles auswählen

import pathlib
BASE = pathlib.Path(__file__).parent

with (BASE / "employees.txt").open("r") as employees_file:
      print(employees_file.read())
Ungetestet.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Oder gleich:

Code: Alles auswählen

form pathlib import Path
BASE = Path(__file__).parent
text = (BASE / "employees.txt").read_text(encoding='ASCII') # oder was auch immer die Datei für ein Encoding hat
print(text)
obwohl, der Dateiname läßt vermuten, dass man über die Zeilen iterieren will, also doch besser open benutzen.
Antworten