Ошибка с юникодом при компиляции pypy
При компиляции через PyPy программа падает после строчки (так как потом полученные данные не могут обработаться):
files_frac=os.listdir(FRAC_DIR)
В папке FRAC_DIR лежат файлы с названиями с кириллицей. При интерпретации через интерпретатор Python проблем нет, а вот PyPy выдает следующую ошибку:
string = string.encode(encoding, errors)
UnicodeEncodeError: 'utf-8' codec can't encode character '\xd4' in position 18: surrogates not allowed
Менять название файлов, к сожалению, очень сильно не желательно. Не могу понять, как решить проблему.
UPD: Вот как читае одинаковую папку PyPy (слева) и Python (справа). Файл с названием на кириллице (последний) читает по-разному:

Ответы (1 шт):
Получилось обойти проблему с помощью функции os.scandir() (PEP 471).
Она возвращает класс DirEntry, у которого есть поля name и path - имя элементов в папке (файла или папки) и полный путь до элемента соответственно. Причем тут уже никаких проблем с кириллицей нет, к тому же функция работает быстрее.