在Python 2,我可以使用下面的代碼來解決或者MacOS的別名或符號鏈接:在OSX上用Python代替現在不推薦使用的Carbon.File.FSResolveAliasFile是什麼?
from Carbon import File
File.FSResolveAliasFile(alias_fp, True)[0].as_pathname()
其中alias_fp是通向我很好奇的文件存儲爲一個字符串(source )。
但是,the documentation cheerfully tells me that the whole Carbon family of modules is deprecated。我應該用什麼來代替?
編輯:我相信下面的代碼是PyObjC方法的正確方向的一步。它不會解析別名,但似乎可以檢測到它們。
from AppKit import NSWorkspace
def is_alias (path):
uti, err = NSWorkspace.sharedWorkspace().typeOfFile_error_(
os.path.realpath(path), None)
if err:
raise Exception(unicode(err))
else:
return "com.apple.alias-file" == uti
(source)
不幸的是,我沒能得到@ Milliways的解決方案工作(一無所知約可可)和stuff I find elsewhere on the internet看起來複雜得多(也許是處理各種邊緣情況?)。
我添加了一個包裝器函數來解析別名和符號鏈接。 – MagerValp