리눅스와 윈도우의 폴더 구분자
파이썬은 플랫폼에 구애받지 않는 특성상 PATH 와 같은 OS 종속적인 요소를 표현할 때 주의해야 할 필요가 있습니다. 윈도우의 경우 폴더 구분자는 \
이고 리눅스의 경우 /
를 사용하기에 더욱 그렇습니다. 그래서 보통, PATH 를 편집 할 일이 있을 때 filepath = mypath + '\\' + 'myfile.txt'
나 filepath = mypath + '/' + 'myfile.txt'
의 고정 문자열 대신 OS 따라 다른 폴더 구분자를 갖고있는 os.sep
을 많이 사용합니다. 혹은 filepath = os.path.join(mypath, 'myfile.txt')
도 좋은 방법이죠
홈 폴더의 경로
같은 연유로 현재 로그인한 사용자의 HOME 폴더 또한 다른 경로를 이용합니다. 아래는 리눅스와 WinXP, 그리고 Win7 에서 현재 로그인한 사용자의 홈폴더로 이동하는 과정입니다.
이처럼 각 OS 별 HOME 폴더는 모두 다른것을 확인할 수 있습니다. 만약 현재 로그인한 사용자의 바탕화면에 간편하게 뭔가를 작업하는 스크립트를 짜고싶다면 에로사항이 꽃피겠죠. 그래서 파이썬에서는 간편하게 홈폴더로 접근할 수 있는 방법을 제공해줍니다.
서론이 길었네요, 핵심은 이 줄입니다.
homepath = os.path.expanduser('~')
desktoppath = os.path.join(homepath, 'Desktop')
위와 같은 코드로 Windows, Linux, Mac 구분 없이 현재 로그인 한 사용자의 바탕화면에 접근할 수 있습니다. ‘다운로드’ 폴더라면 'Desktop'
대신 'Downloads'
를 쓰면 되겠죠. 알고나니 참 짧고 간결한데 모르니 고생입니다. (XP에선 테스트해보지 않았습니다.)