Seite 1 von 1
Lange Dateinamen mit Leerzeichen unter Windows
Verfasst: Montag 22. Mai 2006, 07:29
von chrizdee
Ich versuche gerade ein kleines Skript umzusetzen und irgendwie hab ich ziemliche Probleme unter Windows mit langen Dateinamen und Leerzeichen in Ordnernamen/Dateinamen.
Unter OS X/Linux funktiioniert mein Skript wunderbar, aber unter Windows bekommen ich ständig die Antwort: "...Datei wurde nicht gefunden", wenn ich versuche eine Datei über folgende Pfadangabe zugreifen will:
F:/Dies ist ein Ordner/Meine Datei fuer Python.txt
Wie muss ich meinen Pfad anpassen, damit der Zugriff auch unter Windows funktioniert?
Danke schonmal im Voraus
Verfasst: Montag 22. Mai 2006, 07:31
von jens
Unter Windows werden Dateinamen mit Leerzeichen einfach in Anführungszeichen gesetzt

Verfasst: Montag 22. Mai 2006, 07:34
von chrizdee
Also Du meinst ich müsste die Leerzeichen einfach durch so ersetzen:
'F:/Dies" "ist ein" "Ordner/Meine" "Datei" "fuer" "Python.txt'
und dann klappt's?
Verfasst: Montag 22. Mai 2006, 07:39
von jens
Oh nein!
So:
"F:/Dies ist ein Ordner/Meine Datei fuer Python.txt"

Verfasst: Montag 22. Mai 2006, 08:02
von chrizdee
Ahhh OK - alles klar!
So inzwischen klappt alles wie geplant!
Herzlichen Dank für die raketenschnelle Hilfe!
Re: Lange Dateinamen mit Leerzeichen unter Windows
Verfasst: Montag 22. Mai 2006, 13:39
von Leonidas
chrizdee hat geschrieben:Ich versuche gerade ein kleines Skript umzusetzen und irgendwie hab ich ziemliche Probleme unter Windows mit langen Dateinamen und Leerzeichen in Ordnernamen/Dateinamen.
Das Problem hättest du übrigens auch unter Unices, nur sind dort Leerzeichen in Datei und Ordnernamen nicht so verbreitet.
Verfasst: Dienstag 23. Mai 2006, 22:22
von murph
Darf ich noch benerken, dass Windows nie Slashs, sondern Backslashs zur Trennung benutzt?
Also in deinem Fall:
Windows:
r"F:\Dies ist ein Ordner\Meine Datei fuer Python.txt"
Linux:
"F:/Dies ist ein Ordner/Meine Datei fuer Python.txt"
Das kann man auch mit os.path.join machen, sprich:
Code: Alles auswählen
os.path.join("Dies ist ein Ordner","Meine Datei fuer Python.txt")
Nur bei Windows weiß ich nicht, wie man auf andere Laufwerke zugreift, arbeite mit Ubuntu Linux...
(vllt os.path.join("F:","Dies ist ein Ordner","Meine Datei fuer Python.txt") ???)
Verfasst: Dienstag 23. Mai 2006, 23:06
von querdenker
murph hat geschrieben:Darf ich noch benerken, dass Windows nie Slashs, sondern Backslashs zur Trennung benutzt?...
Das stimmt so nicht ganz!
Ich benutze unter Windows in meinen Skripten ständig den slash.
Der ist als alternativer path-separator unter os.path.altsep hinterlegt.
Das spart eine Menge an Anpassungsarbeit, wenn man dynamisch Pfadangaben baut und die Programme auch mal unter einem *nix laufen sollen / müssen.
mfg, querdenker
Verfasst: Dienstag 23. Mai 2006, 23:24
von murph
oh, danke!!!
Das wusst ich gar nicht!
THX