font_list = [ ['open-iconic', range(0xe000, 0xe0de + 1)], ['emoticons21', range(0x20, 0x3f + 1)], ['icomoon-free', range(0xe900, 0xeaea + 1)] ] def write_cst_file(filename, range): with open(filename + '.cst', 'wb') as file: for char in range: if isinstance(char, str): char = ord(char) print(chr(char), end='') file.write(char.to_bytes(2,'little')) print(f'\n\n{filename + ".cst"} generated') if __name__ == '__main__': print('Font File List:') for index, font in enumerate(font_list, start=1): print(f' [{index}] {font[0]}') selected = None while True: try: selected=int(input('Choose a font: ')) print('') assert type(selected) is int and 0 < selected <= len(font_list) break except KeyboardInterrupt: break except: pass if selected: write_cst_file(font_list[selected - 1][0], font_list[selected - 1][1])