import matplotlib.font_manager from PIL import ImageFont # Iterate over all font files known to matplotlib for filename in matplotlib.font_manager.findSystemFonts(): # Avoid these two trouble makers - don't know why they are problematic if "Emoji" not in filename and "18030" not in filename: # Look up what PIL knows about the font font = ImageFont.FreeTypeFont(filename) name, weight = font.getname() print(f'File: {filename}, fontname: {name}, weight: {weight}')