но если у нас названия директорий на великом и могучем то я получаю вот это
А где получаешь? На экране? Так преобразуй в нужную кодировку перед выводом на экран.
Я вот вижу, что в Python есть разница между типами str и unicode. Соответственно, если ты получаешь последовательность str, то там находятся правильные символы в кодировке некоторой кодовой страницы. Поэтому затем ещё нужно явно определить, с какой кодовой страницей ты имеешь дело.
У строчки str есть методы encode и decode, есть класс Codec - всё это в частности служит для преобразования кодировок.
Но никто тебе не скажет, в какой кодировке хранятся имена на FTP-сервере. В принципе, это зависит от клиентов FTP-сервера, и одновременно на сервере могут присутствовать названия файлов в CP1251 и KOI8-R и т.д.