윈도우 XP, 파이썬 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 응용 프로그램의 텍스트 필드에서이 경로를 얻으므로 이스케이프 처리되지 않은 백 슬래시가 포함 된 문자열로 표시되므로 "바꾸기"로 바꿀 수 없습니다.
짜증나게 해주세요. – chucksmash
감사합니다. os.path.isdir (r'a ') 같은 것을 할 수 있도록이 방법을 인라인으로 수행 할 수 있습니까? – Benjamin
문자열 대신 os.path.dirname을 File 객체로 전달하면 이스케이프에 대해 걱정할 필요가 없습니다. 문자열을 전달하기 때문에 백 슬래시를 이스케이프 처리하거나 원시 입력을 사용하면됩니다. 문자열을 전달할 수있는 방법이 있습니까? – chucksmash