假设我的文件在桌面上:
我希望路径/MAC OS X 10.7 US/Users/labuser/Desktop/abcd.txt
当我使用任何函数来获取路径时,得到的路径为:/Users/labuser/Desktop/abcd.txt
有没有办法得到带有驱动器名的路径?

最佳答案

我从没在Mac上见过这个。装入的卷位于/Volumes中。在运行MacOSX10.7.2的MacBookPro上,我看到的是:

% 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

这不是最好的,但是把它变成一个helper函数是很简单的。
编辑:我发现这个非常高级的Pure Python™ implementation利用PyObjC API调用。

关于python - 我们想用Python获取Mac的posixpath ...有什么办法可以做到这一点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8229128/

10-16 16:15
查看更多