Enhance | use os.walk in font loading

This commit is contained in:
shenjack 2023-10-07 22:27:30 +08:00
parent 385c072881
commit f5ff410951
Signed by: shenjack
GPG Key ID: 7B1134A979775551

View File

@ -119,19 +119,18 @@ def pyglet_load_fonts_folder(folder) -> None:
if not font_path.exists(): if not font_path.exists():
font_path.mkdir(parents=True) font_path.mkdir(parents=True)
return None return None
file_folder_list = os.listdir(folder) logger.info(f'loading font folder {font_path}')
for obj in file_folder_list: for dir_path, dir_names, file_names in os.walk(font_path):
if os.path.isfile(os.path.join(folder, obj)): dir_path = Path(dir_path)
if obj[-4:] == '.ttf' or obj[-4:] == '.otf': for file_name in file_names:
logger.debug(f'loading font {os.path.join(folder, obj)}') file_name = Path(file_name)
if file_name.suffix in ('.ttf', '.otf'):
logger.debug(f'loading font {dir_path / file_name}')
try: try:
pyglet.font.add_file(os.path.join(folder, obj)) pyglet.font.add_file(str(dir_path / file_name))
except Exception: except Exception:
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
logger.error(f'loading font {os.path.join(folder, obj)} failed') logger.error(f'loading font {str(dir_path / file_name)} failed')
else:
logger.info(f'loading font folder {os.path.join(folder, obj)}')
pyglet_load_fonts_folder(os.path.join(folder, obj))
def _call_back(call_back: Callable) -> Callable: def _call_back(call_back: Callable) -> Callable: