尝试编写Python脚本以删除重复的字体Mac OSX

时间:2011-06-21 13:44:50

标签: python macos fonts pyobjc

我正在尝试编写一个实用程序来检查OSX上的字体并删除重复项 - 到目前为止,我已成功迭代文件夹结构并写出包含字体和路径的xml文件。缺点是这没有找到重复,因为相同的字体可以在不同的位置安装两次,但文件名不同;字体系列信息是字体文件的内部信息。

我找到了这个:List of installed fonts OS X / C

import Cocoa
manager = Cocoa.NSFontManager.sharedFontManager()
font_families = list(manager.availableFontFamilies()) 

使用PyObjC列出已安装的字体。这看起来像一个可能的解决方案,但我不是一个重量级的编码器,对PyObjC一无所知!我确实在dir(manager)dir(NSFontManager)的终端中玩游戏,看看我是否能找到一个方法来返回已安装字体的文件路径,但无济于事。

感激不尽的任何帮助。

祝福

//西蒙

2 个答案:

答案 0 :(得分:1)

安装fonttools包并查看此blog post。那里有一个脚本,它给出了第一个参数的字体名称,我相信你可以根据你的用例进行调整。

答案 1 :(得分:0)

再次感谢回复 - 我只是想更新它,希望它有所帮助。我现在正在看fontTools,但承认我找不到文档。根据开发人员的页面,有一些库可以处理除ttf之外的其他字体,但我仍然看起来还没有成功!

同时,我确实在Using Apple Font tools上显示了这个页面,这似乎已经达到我需要的一半 - 即列出已安装的字体和位置。看起来ftxinstalledfonts命令会接受管道,所以理论上我可以将输出传递给我现有的构建xml数据库的python脚本。我假设我可以通过sys模块调用ftxinstalledfonts来做到这一点,但我不清楚如何获得输出...我会去掠夺python文档,但如果没有运气,有人有10秒给出一个指针,我将不胜感激。

快速地说,上面的Font Geek网站也有一些关于TTX的非常有用的东西。

祝福

//西蒙