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.