Оцените кусочек кода
0. Укажите версию питона.

1. Узнайте что за исключение кидается except Exception as exception и идите в этом направлении, но у меня просто не находит файл по вводимой строке и пропуская os.path.isdir и os.path.isfile выходит (у вас нет проверки что можно ввести неверное имя файла).
2. Странно, у меня на венде работает, так что не подскажу.
3. Нужно пробежаться по всем расширениям и проверить каждое, например если перечислять расширения через запятую.
any([file_path.endswith(extension) for extension in '.rar,.txt'.split(',')])

4. Почитайте pep8, давайте переменным осмысленные имена, используйте u"%s сконвертирован." % file_path вместо  file_path + u" сконвертирован.".
5. Используйте if __name__ == '__main__':
6. В функцию converter лучше сразу передавать file_path
7. Возможно Вам не нужно использовать raw_input, а передавать параметры в виде аргументов (тут поможет sys.argv или argparser)
8. Вместо print u"-------------------------------" можно писать print u"-" * 20
9. Лучше добавлять атрибут 'b' в команду open: open(file_path, 'rb') и open(file_path, 'wb')
Комментарии к ответу tbicr:
>>0. Укажите версию питона.
Если речь и разделении Python2/3, то разве этот код вообще сможет запуститься на Python3? Там же в принципе нельзя указать u-префикс строкам, т.к. он идет по умолчанию.

>>1. Узнайте что за исключение кидается except Exception as exception
Исключения при перекодировке строк — общий родитель для них в данном случае UnicodeError.

Комментарии к ТС:

1) Вы пишите u«utf-8», но при этом «Ошибка в имени файла...» без u-префикса. Лучше наоборот :)

2) Чем меньше вложенность — тем лучше (в разумных пределах). Вместо
    if file.endswith(".txt"):
        P = os.path.join(path, file)
        ...

лучше написать:
    if not file.endswith(".txt"):
        continue
    P = os.path.join(path, file)
    ...

Плоское лучше, чем вложенное.
Flat is better than nested.

3) if os.path.isdir(path) == True:
не надо так. просто
if os.path.isdir(path):

4) вместо
    for (path, dirs, files) in os.walk(path):
        for file in files:
            converter(path, file)

можно использовать glob.