尝试编写Python脚本以删除Mac OSX中的重复字体
我正在尝试写一个工具,检查OSX上的字体并删除重复的字体。目前为止,我已经成功地遍历了文件夹结构,并写出了一个包含字体和路径的xml文件。不过,这样做的一个缺点是,它无法找到重复的字体,因为同一种字体可能在不同的位置安装了两次,但文件名却不同;字体系列的信息是存储在字体文件内部的。
我发现了这个链接:OS X上已安装字体的列表 / C
import Cocoa
manager = Cocoa.NSFontManager.sharedFontManager()
font_families = list(manager.availableFontFamilies())
这个链接使用了PyObjC来列出已安装的字体。这看起来是一个可能的解决方案,但我不是一个高级程序员,对PyObjC一无所知!我在终端里尝试过用dir(manager)
和dir(NSFontManager)
来看看能否找到返回已安装字体文件路径的方法,但没有成功。
任何帮助都将不胜感激。
祝好
//西蒙
2 个回答
再次感谢大家的回复 - 我想更新一下这个内容,希望能帮到大家。我现在在研究fontTools,但承认我在找文档方面遇到了一些困难。根据开发者的页面,除了ttf字体,还有其他字体的库可以使用,但我目前还没找到合适的资料!
与此同时,我发现了这个页面,关于使用Apple字体工具,看起来能部分满足我的需求 - 也就是列出已安装的字体和它们的位置。看起来ftxinstalledfonts
这个命令可以接受管道,所以理论上我可以把输出结果传给我现有的python脚本,来构建一个xml数据库。我在想我可以通过sys模块来调用ftxinstalledfonts
,但不太清楚怎么获取输出结果……我会去查查python的文档,但如果没有找到,谁能花10秒给我个提示,我会非常感激。
顺便提一下,上面提到的Font Geek网站还有一些关于TTX的非常有用的信息。
祝好
//Simon
安装一下 fonttools
这个软件包,然后看看这篇 博客文章。里面有一个脚本,可以根据你给的第一个参数来获取字体名称,我相信你可以把它改造成适合你自己需要的样子。