Python: Pfadangabe

Hallo,

Ich möchte, daß ein Anwender einem Script einen Pfad übergibt. Also habe ich settings.py inkludiert, wo folgendes steht:

path=C:\TEST

Allerdings wird \T als Tabulator aufgefasst, man müsste also C:\TEST schreiben. Das will ich dem Benutzer nicht zumuten. Gibts da eine Lösung? Ich habe schon mit path.replace(’\’,’@@’).replace(’@’,’\’) experimentiert.

Grüße Chris

Hallo!

Ich möchte, daß ein Anwender einem Script einen Pfad übergibt.
Also habe ich settings.py inkludiert, wo folgendes steht:

path=C:\TEST

path=„C:\text“
…vermute ich mal. Allerdings, ob das ein gute Idee ist, den Anwender Pythoncode schreiben zu lassen, weiß ich nicht. Und wenn der Anwender von Python schon mal was gehört hat, macht er vielleicht „C:\text“ oder r"C:\text" (raw-string) oder sogar „C:/text“, weil er weiß, dass es Python egal ist, ob Backslash oder Slash. Ich würd’ den Pfad eher aus einer schnöden Textdatei einlesen.

Ich habe schon mit path.replace(’\’,’@@’).replace(’@’,’\’) experimentiert.

Wenn unbedingt der Weg über settings.py, dann einfach brute force
path.replace(’\t’,’\t’).replace(’\n’,’\n’) etc. pp. oder eleganter über die string-Funktion translate().

Gruß M.

Hallo Mettmann,

Damit hast Du mir sehr geholfen! Das r"text" kannte ich noch nicht.

Gruß Chris

Hallo Chris!

Damit hast Du mir sehr geholfen! Das r"text" kannte ich noch
nicht.

Bitte aber raw-Strings *nicht* für Dateipfade benutzen. Dafür sind sie nicht gedacht, sondern für z.B. reguläre Ausdrücke, die ja selbst exessiv Backslashes nutzen. Ein Problem bei der Verwendung von raw-Strings für Dateipfade ist, dass ein solcher String nicht mit einem einzelnen Backslash enden darf. r"C:\test1\text2" oder r"C:" gehen also nicht. FAQ dazu: http://www.python.org/doc/faq/general/#why-can-t-raw…

Gruß M.