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.
Hallo,
ich bin ganz frischer Anfänger in Python und hätte eine Frage zu Dateien.
Ich möchte eine Datei öffnen, wenn aber dieser Code ausgeführt wird, bekomme ich diese Fehlermeldung.
Als Entwiclungsumgebung benutze ich PyCharm
if __name__ == "__main__":
f = open("python",'r') # File kommt zurück und wird an f übergeben
print(f.read())
Traceback (most recent call last):
File "C:/Users/...", line 88, in <module>
f = open("python",'r') # File kommt zurück und wird an f übergeben
FileNotFoundError: [Errno 2] No such file or directory: 'python'
@pythNeuling: die Fehlermeldung ist ja eindeutig: die Datei »python« existiert nicht in dem Verzeichnis in dem das Programm ausgeführt wird. Gibt es die Datei überhaupt, und wenn ja, wo liegt sie?
`open()` funktioniert nicht wie eine Shell. Bei einer Shell werden bestimmte Ordner durchsucht, nachdem ein Befehl eingegeben wurde, um ein passendes Programm für den Aufruf zu finden. Bei `open()` wird hingegen nur im aktuellen Ordner nachgesehen (sofern keine absolute Pfadangabe gemacht wurde). Wenn da keine Datei namens `python` vorhanden ist, dann spuckt er diese Fehlermeldung aus.
Sirius3 hat geschrieben:@pythNeuling: die Fehlermeldung ist ja eindeutig: die Datei »python« existiert nicht in dem Verzeichnis in dem das Programm ausgeführt wird. Gibt es die Datei überhaupt, und wenn ja, wo liegt sie?
Die Datei existiert auf dem Desktop.
Gibt es eine überladene Version von der Methode, wo ich den Pfad angeben kann?
Den Pfad gibst du da an, wo jetzt nur der Dateiname steht. Also anstelle von `python` einfach ein `Desktop/python` (falls die Datei wirklich "python" heißt). Überladene Methoden gibt es in Python übrigens nicht. Wir sind hier nicht bei C++ oder Java.
Vielen Dank für eure Hilfe. Ich hab versucht eure Tipps umzusetzen, leider spuckt der Compiler diese Fehlermeldung aus.
Auf dem Desktop befindet sich eine Textdatei mit dem Namen test.txt
Ich hab es auch schon mit zwei Schrägstrichen anstatt einem versucht.
if __name__ == "__main__":
f = open('C:\Users\\pythNeuling\Desktop\test','r')
print(f.read())
File "C:/Users/pythNeuling/PycharmProjects/Grundlagen/testcode.py", line 88
f = open('C:\Users\\pythNeuling\Desktop\test','r') # File kommt zurück und wird an f übergeben
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
@pythNeuling: Der Backslash '\' leitet Escape-Sequenzen ein, unter anderem \t für Tab \n für Newline \r für Return und eben auch \U für 32bit Unicodenummern. Besser ist es, als Verzeichnistrenner '/' zu verwenden, wie es Python ja auch in den Fehlermeldungen macht.
Entweder Slashes statt Backslashes (auch unter Windows möglich) oder die Form r'dein\pfad\zur\datei.txt'. Die letzte Form ist ein Raw-String, bei dem Backslashes nicht mehr als Teil von Steuersequenzen interpretiert werden, sondern als normale Zeichen.