Seite 1 von 1

Dateien lesen u. schreiben aus anderen Verzeichnis

Verfasst: Mittwoch 20. März 2024, 20:57
von merovinger
Hallo Leute.

Ich bin gerade dabei mir Python anzueignen.
Aktuell bleibe ich hängen bei dem Problem Dateien aus einen anderen Verzeichnis einzulesen bzw. darin zu schreiben.
Ich verwende PyCharm.
Aktuell bin ich auch ein wenig verwirrt. Wenn ich die offizielle schreibweise nutze (W3) meckert PyCharm wenn ich es ändere geht es. Siehe unten. Ich dachte es gibt nur eine richtige Syntax!?

1. Wie wird jetzt korrekterweise eine Datei aus einem anderen Verzeichnis geholt ?
2. Wie ist die richtige Syntax wenn Dateien gelesen/beschrieben werden sollen ?

Das funktioniert: file = open(r"D:\IT\Python lernen\XXX\CCCC\VVVV\schreiben.txt")
Das funktioniert nicht: file = open(w"D:\IT\Python lernen\XXX\CCCC\VVVV\schreiben.txt")
Das funktioniert nicht: file = open("D:\IT\Python lernen\XXX\CCCC\VVVV\schreiben.txt", "w")


Danke schon mal für das Feedback.

Re: Dateien lesen u. schreiben aus anderen Verzeichnis

Verfasst: Mittwoch 20. März 2024, 21:06
von sparrow
Und die Fehlermeldung zu "funkioniert nicht" lautet?

Und was soll denn ein "w" vor einer Zeichenkette bewirken? Das sollte syntaktisch falsch sein.
Das "r" bedeutet, dass es sich um einen "Raw String" handelt:

Code: Alles auswählen

>>> r"\Test"
'\\Test'

Re: Dateien lesen u. schreiben aus anderen Verzeichn

Verfasst: Mittwoch 20. März 2024, 21:10
von __deets__
Wir haben das hier tausend mal besprochen. Such mal nach Windows, Pfad, backslash, escape.

Re: Dateien lesen u. schreiben aus anderen Verzeichnis

Verfasst: Donnerstag 21. März 2024, 20:08
von merovinger
Nein nix gefunden Backslash-Kram.
Da man hier keine Screenshots reinpasten kann, einmal den Code und ie Ausgabe.

Code: Alles auswählen

file = open("D:\\Test\01 - Ordner\02 - Ordner\03 - Ordner\schreiben.txt", "r")
print(file.read())
file.close()
file = open("D:\\Test\01 - Ordner\02 - Ordner\03 - Ordner\schreiben.txt", "r")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 22] Invalid argument: 'D:\\Test\x01 - Ordner\x02 - Ordner\x03 - Ordner\\schreiben.txt'

Re: Dateien lesen u. schreiben aus anderen Verzeichnis

Verfasst: Donnerstag 21. März 2024, 20:38
von __blackjack__
@merovinger: Text sollte sowieso als Text gepostet werden und nicht als Bild.

In der Zeichenkette sind drei \ die jeweils einen Bytewert erzeugen der unter Windows nicht in Dateinamen vorkommen darf. Dann zwei Backslashes die *einen* Backslash erzeugen, und eine Kombination die unverändert übernommen wird weil "\s" keine besondere Bedeutung hat. Man sollte auch da den Backslash mit einem Backslash schützen. Oder eben ”raw”-Zeichenkettenliterale verwenden. Was Du im ersten Beitrag ja bereits gemacht hast. Warum nimmst Du nicht einfach die Variante die funktioniert.

Die Details zu Zeichenketten und Escape-Sequenzen stehen in der Python-Dokumentation: https://docs.python.org/3/reference/lex ... -sequences

Re: Dateien lesen u. schreiben aus anderen Verzeichnis

Verfasst: Donnerstag 21. März 2024, 20:39
von Sirius3
In der Fehlermeldung siehst Du ja schön, in was \01 umgewandelt wird.
Am besten benutzt man als Pfadtrenner immer /.
Dateien öffnet man mit einem with-Statement und gibt das Encoding für Textdateien immer explizit an:

Code: Alles auswählen

with open("D:/Test/01 - Ordner/02 - Ordner/03 - Ordner/schreiben.txt", encoding="utf8") as file:
    print(file.read())

Re: Dateien lesen u. schreiben aus anderen Verzeichnis

Verfasst: Donnerstag 21. März 2024, 20:56
von merovinger
Ich habe gerade mal ein wenig rumgespielt. Wenn ich jeweils doppelte Backslashe einsetze funtkioniert es.

Code: Alles auswählen

file = open("D:\\Test\\01 - Ordner\\02 - Ordner\\03 - Ordner\\schreiben.txt", "r")
print(file.read())
file.close()
Wenn ich das aber auf ein anderes Verzeichnis übertrage geht es nicht.
Gibt es Einschränkungen bei der Pfadlänge ?
Kommt Python mit Leerzeichen in Ordnernamen nicht klar ?
PyCharm sagt mir das das Verzeichnis nicht gefunden wurde.

Re: Dateien lesen u. schreiben aus anderen Verzeichnis

Verfasst: Donnerstag 21. März 2024, 21:39
von Sirius3
Und wieder kann man nichts dazu sagen, wenn Du nicht den konkreten Code und die Fehlermeldung dazu postest. Du scheinst halt irgendwas anders zu machen.

Re: Dateien lesen u. schreiben aus anderen Verzeichnis

Verfasst: Donnerstag 21. März 2024, 22:04
von sparrow
@merovinger: Entweder ignorierst du absichtlich sämtliche dir gegegeben Hinweise oder du überliest sie. Letzteres wäre aber schon erstaunlich, weil du nun wirklich keinen einzigen übernommen hast. Vielleicht solltest du den Thread noch einmal in Ruhe von oben bis unten lesen.

Und es drängt sich natürlich die Frage auf, wie du darauf kommst, dass Python mit Leerzeichen in Ordnernamen nicht klar kommt, wenn du in dem selben Post ja zeigst, dass es funktioniert.