Как я могу найти полный путь к шрифту по его отображаемому имени на Mac?

Я использую javascript API Photoshop для поиска шрифтов в заданном PSD.

Учитывая имя шрифта, возвращаемое API, я хочу найти фактический файл физического шрифта, которому соответствует имя шрифта на диске.

Все это происходит в программе Python, работающей на OSX, поэтому я думаю, что ищу одно из:

  • Немного Photoshop javascript
  • Функция Python
  • API OSX, который я могу вызывать из python
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
41
0
3 664
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

откройте терминал (Приложения-> Утилиты-> Терминал) и введите следующее:

locate InsertFontHere

Это выведет каждый файл с нужным вам именем.

Предупреждение: может быть многое, что нужно проделать.

Мне не удалось найти ничего, что могло бы делать это напрямую. Я думаю, вам придется перебирать различные папки шрифтов в системе: /System/Library/Fonts, /Library/Fonts, и, вероятно, также может быть каталог уровня пользователя ~/Library/Fonts.

Ответ принят как подходящий

К сожалению, единственный API, который не является устаревшим, находится в платформе ApplicationServices, у которой нет файла поддержки моста, и поэтому он недоступен в мосте. Если вы хотите использовать ctypes, вы можете использовать ATSFontGetFileReference после поиска ATSFontRef.

Какао не имеет встроенной поддержки, по крайней мере, с версии 10.5, для получения местоположения шрифта.

В Какао должен быть метод для получения списка шрифтов, тогда вам нужно будет использовать привязки PyObjC для его вызова ..

В зависимости от того, для чего они вам нужны, вы, вероятно, можете просто использовать что-то вроде следующего ...

import os
def get_font_list():
    fonts = []
    for font_path in ["/Library/Fonts", os.path.expanduser("~/Library/Fonts")]:
        if os.path.isdir(font_path):
            fonts.extend(
                [os.path.join(font_path, cur_font) 
                 for cur_font in os.listdir(font_path)
                ]
            )
    return fonts

Другие вопросы по теме