7 Stimmen

Os.path : Können Sie dieses Verhalten erklären?

Ich liebe Python, weil es Batterien mitliefert, und ich verwende die eingebauten Funktionen oft, um die schmutzige Arbeit für mich zu erledigen.

Ich habe immer mit glücklich das os.path-Modul, um mit Dateipfad zu behandeln, aber vor kurzem endete ich mit unerwarteten Ergebnissen auf Python 2.5 unter Ubuntu Linux, beim Umgang mit Zeichenfolge, die Windows-Dateipfade darstellen:

filepath = r"c:\ttemp\FILEPA~1.EXE"
print os.path.basename(filepath)
'c:\\ttemp\\FILEPA~1.EXE']
print os.path.splitdrive(filepath)
('', 'c:\ttemp\\FILEPA~1.EXE')

WTF?

Mit filepath = u "c endet es auf die gleiche Weise: \ttemp\FILEPA ~1.EXE" und Dateipfad = "c: \ttemp\FILEPA ~1.EXE".

Haben Sie einen Anhaltspunkt? Ubuntu verwendet UTF8, aber ich habe nicht das Gefühl, dass es etwas damit zu tun hat. Vielleicht ist meine Python-Installation durcheinander, aber ich habe keine besondere Optimierung vorgenommen, an die ich mich erinnern kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X