2010-07-24 3 views
11

저는 MacBook 프로그래밍 Python으로 작업하고 있습니다. 제가 알고 싶은 것은 파이썬의 파일 함수를 사용하여 특정 파일에 접근하는 방법입니다. Google 검색이 실패했습니다. 예를 들어Mac에서 파일의 디렉토리 주소 찾기

, 윈도우는 다음과 같이 될 것이다 :

f = open(r'C:\text\somefile.txt') 

어떻게 맥의 바탕 화면에 저장된 폴더에서 뭔가를 액세스 할 것인가?

답변

9

데스크톱은 사용자의 홈 디렉터리의 하위 디렉터리에 불과합니다. 후자가 고정되어 있지 않으므로 os.path.expanduser과 같은 것을 사용하여 코드를 포괄적으로 유지하십시오. 예를 들어, 바탕 화면에있는 somefile.txt라는 파일을 읽어이 운영 체제에서 이식이 가능하려면

import os 
f = open(os.path.expanduser("~/Desktop/somefile.txt")) 

를 사용하려면 바탕 화면 디렉토리가 별도로 각 시스템에있는 곳을 찾아야한다. 당신은 에 최선을 다하고

+0

_ "운영체제간에 이식 가능하도록하려면"_ "경로 구분 기호를 수정해야합니다 (예 : '/'에서 ' \ 'Windows에 갈 경우 내 대답을 참조하십시오. –

4
f = open (r"/Users/USERNAME/Desktop/somedir/somefile.txt") 

또는 더 나은

import os 
f = open (os.path.expanduser("~/Desktop/somedir/somefile.txt")) 

때문에 배쉬 (맥 OS X의 기본 쉘) ~/는 사용자의 홈 디렉토리를 표시합니다.

+0

- 이것은 잘못된 것입니다 : 당신이 더 많은 휴대용 멀티 플랫폼 처음부터 싶은 경우에, 당신은 더 나은 os.path.join 연산자를 사용 그것은 bash와 같은 인기있는 셸에서 사용되는 유일한 규칙입니다. '~/somefile.txt'를 열려고하면 현재 디렉토리에서'~'라는 디렉토리를 찾을 것입니다. – Philipp

+0

이 수정되었습니다. 감사합니다. –

+1

수정되지 않았습니다.'open'은 절대로'~'를 확장하지 않으며 쉘을 사용하지 않습니다. 'open ("~/somefile.txt", "w")'시도해 보라.'~'디렉토리가 없다면 파일을 만들지 못한다. – Philipp

0

그래서 "a/b/c.text" 같은 경로는 잘하지만, 향후 윈도우를 사용하는 경우, 당신은 모든 '/''\'로 변경해야합니다. "`~ /`사용자의 홈 디렉토리를 나타냅니다 때문에 유닉스 계열의 시스템에서."

import os 

desktop = os.path.join(os.path.expanduser("~"), "Desktop") 
filePath = os.path.join(desktop, "somefile.txt") 

f = open(filePath)