如何在不使用`osascript`的情况下获取Python中macOS启动驱动器的名称?

时间:2017-11-17 23:02:04

标签: python macos

我需要一个Python脚本来了解我的Mac的启动驱动器名称。这确实有效:

ascript = 'tell application "System Events" to get (name of startup disk)'
cmd = "osascript -e '{}'".format(ascript)
startup_vol = subprocess.check_output(cmd, shell=True).splitlines()[0]

但严重的是,Python调用调用AppleScript的osascript子进程调用?我想我可以在那里挤压任何其他语言吗?

是否有本地Python方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

为什么不使用pyobjc?无论如何它应该默认安装。

from Foundation import NSFileManager
print(NSFileManager.defaultManager().displayNameAtPath_('/'))

结果:

$ python -c "from Foundation import NSFileManager; print(NSFileManager.defaultManager().displayNameAtPath_('/'))"
Macintosh HD

只是为了完整起见 - 你也可以使用python绑定到Carbon API,虽然it is deprecated and not recommended to use和API整体上非常笨拙:

$ python -c "import Carbon.File; print(Carbon.File.FSRef('/').FSGetCatalogInfo(0)[1])"
Macintosh HD