这个os.path用法有什么问题?

Ben*_*min 1 python windows path

在Windows XP,Python 2.6.6上使用os.path获得意外结果:

a = "D:\temp\temp.txt"
os.path.dirname(a)
>>> 'D:' # Would expect 'D:\temp'
os.path.normpath(a)
>>> 'D:\temp\test.txt'
os.path.basename(a)
>>> '\temp\test.txt' #Would expect 'test.txt'
a.replace("\\", "/")
>>>'D:\temp\test.txt' # Would expect 'D:/temp/test.txt'
Run Code Online (Sandbox Code Playgroud)

有人可以解释发生了什么吗?我怎样才能获得正确/预期的行为?为什么我不能用前斜线替换反斜杠?

编辑:我从wxPython应用程序中的文本字段获取此路径,因此它是一个带有未转义的反斜杠的字符串,我似乎无法用"替换"替换它们.

int*_*jay 9

你没有逃脱你的反斜杠.使用\\代替\或使用原始字符串,例如:

a = r"D:\temp\temp.txt"
Run Code Online (Sandbox Code Playgroud)

在未转义的字符串中,它\t被解释为制表符.