在Windows XP中,Python的2.6.6得到了意想不到的結果和os.path中:這個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'
有人能解釋這是怎麼回事?我如何獲得正確/預期的行爲?爲什麼我不能用正斜線替換反斜槓?
編輯:我從wxPython應用程序中的文本字段獲取此路徑,所以它作爲帶有未轉義的反斜槓的字符串出現,我似乎無法用「替換」替換它們。
darn,打我吧。 – chucksmash 2011-03-31 17:02:09
謝謝,有沒有辦法做到這一點,以便我可以做一些像os.path.isdir(r'a')? – Benjamin 2011-03-31 17:03:52
如果您將os.path.dirname傳遞給File對象而不是字符串,則不必擔心轉義 - 只需轉義反斜槓或使用原始輸入,因爲您正在傳遞字符串。有什麼方法可以解決傳遞字符串的問題嗎? – chucksmash 2011-03-31 17:07:12