Last active
December 25, 2016 00:30
-
-
Save jlgarridol/3ec188afaef4cd463f168815e98400c2 to your computer and use it in GitHub Desktop.
Script en Python 3 para Linux para generar un JSON con todas las fuentes instaladas
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python3 | |
import os.path | |
import subprocess | |
import json | |
subFamily = ["Thin","ExtraLight","Light","Regular","Medium","SemiBold","Bold","ExtraBold","Black"] | |
italic = "Italic" | |
folder = "/usr/share/fonts/TTF/" | |
ls = "ls " | |
cutDash1 = "cut -f1 -d\"-\"" | |
cutDash2 = "cut -f2 -d\"-\"" | |
cutPoint = "cut -f1 -d\".\"" #Algunas fuentes regulares no ponen Regular, para quitar el ttf | |
piper = "|" | |
extension = ".ttf" | |
#Leemos la carpeta | |
familyFile = str(subprocess.check_output(ls+folder+piper+cutPoint,shell=True)) | |
#Esto es para quitar el principio y final que me pone subprocess | |
familyFile = familyFile.replace("b'","") | |
familyFile = familyFile.replace("'","") | |
#Quito de todos los nombres la subfamilia y la extensión | |
familyFile = familyFile.replace(extension,"") | |
familyFile = familyFile.replace("-"+italic,"") | |
for sub in subFamily: | |
familyFile = familyFile.replace("-"+sub+italic,"") | |
familyFile = familyFile.replace("-"+sub,"") | |
family = familyFile.split("\\n") #Lo convierto en una lista | |
family.pop(len(family)-1) #Quito el espacio final que me crea | |
#Los valores duplicados no importan porque son la clave del diccionario | |
#Para cada familia tendremos un fichero del diccionario | |
fonts = {} | |
for f in family: | |
if f not in fonts: #Solamente si no se ha añadido para evitar ciclos inútiles | |
fonts[f]=[] #Por cada familia tendremos una lista con las subfamilias | |
#Ahora recorremos las distintas subfamilias | |
for sub in subFamily: | |
if os.path.isfile(folder+f+"-"+sub+extension): | |
fonts[f].append(sub) | |
if os.path.isfile(folder+f+"-"+sub+italic+extension): | |
fonts[f].append(sub+italic) | |
elif sub == "Regular": #Cuando sea regular | |
if os.path.isfile(folder+f+extension): #Si no pone en el nombre nada de regular | |
fonts[f].append(sub) | |
if os.path.isfile(folder+f+"-"+italic+extension): #Para las Regular Italic | |
fonts[f].append(italic) | |
finalFile = json.dumps(fonts) | |
print(finalFile) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
He hecho algunas mejoras permitiendo que las fuentes que contaban con - en el nombre no se vieran afectadas o aquellas que no respetaban el estándar del nombre de subfamilia (siendo asignadas a Regular)