2010-07-24 32 views
11

我正在使用Macbook編程python。我想知道的是如何使用Python的文件功能訪問某些文件。谷歌搜索失敗了我。在Mac上查找文件的目錄地址

例如,Windows會是這樣的:

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

我將如何從保存在一臺Mac的桌面文件夾訪問的東西嗎?

回答

9

桌面只是用戶主目錄的子目錄。由於後者不是固定的,請使用類似os.path.expanduser的代碼來保持代碼的通用性。例如,讀取一個叫somefile.txt駐留在桌面上的文件,使用

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

如果你想這是跨操作系統移植,你必須找出桌面目錄分別位於每個系統上。

+0

_「如果您希望它可以跨操作系統移植」_ ...您還需要更正路徑分隔符,例如從'/'改爲' \'如果你去了Windows,看到我的答案。 – 2016-11-22 11:44:45

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

甚至更​​好

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

因爲在慶典(在Mac OS X中的默認的shell)~/表示用戶的主目錄。

+0

「因爲在* nix系統'〜/'表示用戶的主目錄。」 - 這是不對的,它只是流行的shell如bash所使用的一個約定。試圖打開'〜/ somefile.txt'會在當前目錄內尋找一個叫做'〜'的目錄。 – Philipp 2010-07-24 09:12:46

+0

已更正,謝謝 – 2010-07-24 09:13:59

+1

它沒有更正 - 'openn永遠不會擴展'〜',它永遠不會使用shell。嘗試'open(「〜/ somefile.txt」,「w」)' - 除非你有一個名爲'〜'的目錄,否則它將無法創建文件。 – Philipp 2010-07-24 09:17:54

0

你在一個的Mac工作,所以像"a/b/c.text"路徑是好的,但如果您使用的Windows 以後,你就必須改變所有的'/''\'。如果你想更便攜和平臺無關的,從一開始,你最好使用os.path.join操作:

import os 

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

f = open(filePath)