2011-11-22 17 views
3

假設我的文件是在桌面上:我們想要得到的posixpath爲Mac在Python ...有什麼辦法讓這個

我想要的路徑/MAC OS X 10.7 US/Users/labuser/Desktop/abcd.txt

當我使用任何函數來獲取路徑,我得到的路徑:/Users/labuser/Desktop/abcd.txt

有沒有什麼辦法讓與驅動器名稱的路徑?

+2

「/Users/labuser/Desktop/abcd.txt」是posix路徑。也許你想要的是HFS路徑? –

+1

驅動器名稱永遠不會是路徑的一部分,除了Windows以外。你爲什麼要這樣? – jathanism

+0

@jathanism,驅動器名稱是HFS(Mac文件系統)路徑的一部分。 –

回答

0

你嘗試使用macpath模塊?

它包含所有的os.path方法,但以Macintosh路徑名樣式。

+0

根據macpath.splitdrive的文檔字符串:「在Mac上,驅動器總是空的」。 – ekhumoro

1

我從來沒有在Mac上看到過這個。裝入的卷可在/Volumes中找到。在我的MacBook Pro運行Mac OS X 10.7.2,這是我所看到的:

% ls -l /Volumes 
total 8.0K 
drwxrwxrwt+ 5 root admin 170 Nov 21 11:02 . 
drwxr-xr-x 38 root wheel 1.4K Nov 21 20:40 .. 
lrwxr-xr-x 1 root admin  1 Nov 6 20:49 Macintosh HD ->/

那裏你看到一個名爲「Macintosh的HD」符號鏈接(或任何你把它命名爲)鏈接到/。所以在這種情況下,/Volumes/Macintosh HD等於/。現在

,這聽起來像你想的HFS路徑是什麼,這是冒號分隔(例如Macintosh HD:Users:labuser:Desktop:abcd.txt)?在這種情況下,我不知道當前的Python實現這樣做的,但有一個AppleScript command you may run on your Mac to convert HFS Path to POSIX反之亦然:

% osascript -e 'return POSIX path of file "Macintosh HD:Users:labuser:Desktop:abcd.txt"' 
/Users/labuser/Desktop/abcd.txt 

和反向:

% osascript -e 'return posix file "/Users/labuser/Desktop/abcd.txt"' 
file Macintosh HD:Users:labuser:Desktop:abcd.txt 

這不是最大的,但把它變成輔助函數是很簡單的。

編輯:我發現這個非常先進的Pure Python™ implementation利用PyObjC API調用。

相關問題