任何人都可以改进?我相当新的python,并试图编写可移植的代码。我需要找到一个字体文件传递给ImageDraw.Draw.Text。Python - 查找TTF文件
import matplotlib.font_manager as fontman
def findFontFile(searchFont):
fList = fontman.findSystemFonts(fontpaths=None, fontext='ttf')
targetFont = []
for row in fList:
try:
if searchFont in row:
targetFont.append(row)
except TypeError:
pass
return targetFont[0]
在我的系统中,这给了我:
>>> findFontFile('DejaVuSans.ttf')
'/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf'
这正是我需要的。这看起来像它可以在Mac/Windows系统和Linux(在Linux上测试)上工作吗?它能更有效地完成吗?在一个更可读的风格? Mac/Windows会有不同的字体文件命名格式吗?建议欢迎。
阅读[文档](http://matplotlib.org/api/font_manager_api.html)它说它支持多个平台。我想你可能会花一段时间试图找出它应该工作的平台。 您的任何代码似乎都不依赖于平台,因此全部取决于matplotlib。 此外,如果任何字体对你有好处,你可以'返回行'。 – ferrix 2013-03-12 17:12:58
你为什么不使用matplotlib.font_manager.FontManager? – 2013-03-13 05:44:34
因为我没有阅读完整的文档。我已经标记了Cristiano的答案,但我可能会使用FontManager。感谢那。 – Dorsey 2013-03-13 14:58:45