2010-06-01 7 views
50

"C : \ meshes \ as"와 같이 Windows 디렉토리를 나타내는 가장 좋은 방법은 무엇입니까? 나는 스크립트를 수정하려고 시도했지만 올바르게 작동하지 않는 것 때문에 결코 작동하지 않습니다. 이스케이프 문자로 작동하는 '\'로 인해 가정합니다.Python의 Windows 경로

답변

89

당신은 항상 사용할 수 있습니다

'C:/mydir' 

이 리눅스와 윈도우 모두에서 작동합니다. 다른있는 posibility은 당신이 어떤 이름을 가진 문제가 있다면 당신은 또한 원시 문자열을 시도 할 수 있습니다

'C:\\mydir' 

입니다 :

r'C:\mydir' 

그러나 가장 좋은 방법은 항상에 대한 올바른 구성을 선택 os.path 모듈 기능을 사용하려면 OS :

os.path.join(mydir, myfile) 
+0

고마워요, '/'잘 작동했지만 다른 힌트를 주시면 감사하겠습니다. – Gareth

+2

@Gareth, 나는 매우 게으르고 종종 '/'를 사용하여 자신을 발견했습니다. 그러나 장기적으로 os.path를 사용하는 것이 더 편리합니다. 또한 mydir 및 myfile을 쉽게 수정할 수있는 변수로 사용할 수 있습니다. – joaquin

+7

원시 문자열에주의해야 할 점은 \ –

13

os.path 모듈을 사용하십시오.

os.path.join("C:", "meshes", "as") 

또는 사용 원시 문자열

r"C:\meshes\as" 
+6

os.path.join가 상대 경로가도 일 수 있기 때문에 당신이 구성 요소가 드라이브 문자 때 예상대로 동작하지 않을 수 있습니다 en. (첫 번째 줄의 결과는 Windows에서 'C : meshes \\ as'입니다.) –

+0

@ dash-tom-bang의 의견은 정말로 중요합니다. ''C : \ "'를 첫 번째 항목으로 넣는 것이 옳은가요? 그것은'join '을 사용하는 청결 함을 망칠까요? –

+1

@ JackO'Connor 그것이 내가하는 일입니다. 확실히 파일 이름의 중간에''C : \ "'를 넣고 싶지는 않을 것이다. 게다가 조인 전이나 후에'os.path.normpath'를 사용하여 경로가 잘 인쇄되도록 할 수 있습니다. – Agostino