[Python-de] Problem mit Pfadangaben

Gerhard Häring haering_python at gmx.de
Thu Apr 25 09:47:45 EDT 2002


* Fischer, Thomas <ThomasFischer at schmuecker.de> [2002-04-25 08:37 +0200]:
> Hallo!
> Ich möchte eine Datei über einen Pfad lesen.
> Dazu habe ich folgenden 3-Zeile erstellt:
> 
> importFile="C:\Dokumente und Einstellungen\fis\Desktop\datei.txt"
> doc=open(importFile).read()
> print doc
> 
> Leider bekomme ich eine IO-Fehlermeldung, da aus dem angegebenen Pfad
> folgendes wird:
> 
> C:\\Dokumente und Einstellungen\x0cis\\Desktop\datei.txt"
> 
> Aus fis innerhalb der Pfadangab wurde x0cis wodurch wiederum der Fehler
> entsteht.
> 
> Könnt Ihr mir helfen?

\f scheint eine Escape-Sequenz zu sein: der Backslash hat in Strings ein
besondere Bedetung, er escapt bestimmte Sonderzeichen wie Newline \n,
Return \r. Hab's gerade rausgefunden, \f ist Form Feed (Seitenumbruch).

Lösungen:

0. Escape grundsätzlich \ als \\

1. Verwende Raw Strings, in diesen haben Backslashes keine besondere
   Bedeutung: Bsp.: r"c:\Dok..."

2. Verwende os.path.join, das ist gut, portabel, und macht keine
   Flecken:
   os.path.join("c:", "Dokumente und Einstellungen", "fis", ...)

Übrigens gibt es Möglichkeiten, mit den win32-Extensions das
Desktop-Verzeichnis des Users rauszufinden, falls das Proggi mal
woanders laufen soll (es muss noch nicht mal ein C: Laufwerk geben).

Gerhard
-- 
This sig powered by Python!
Außentemperatur in München: 9.6 °C      Wind: 2.5 m/s



More information about the Python-de mailing list