Прошу вашей помощи в решении проблемы ниже.
Предыстория: общая задача состоит в том, что нужно копировать файлы с одного фтп на другой фтп, следуя некоторым правилам (нужно копировать файлы определенного формата, раскладывать их по определенным папкам и т.д.). Скрипт написан и работает, но иногда падает, когда в названии файла встречаются русские буквы или символы вида ñ.
Создала тестовый пример:
# -*- coding: cp866 -*- import os list = os.listdir('D:\\Test') for filename in list: print(filename)
При выполнении получаю ошибку:
File "C:\Python33\lib\encodings\cp866.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xf1' in position 2:
character maps to <undefined>
print(filename.encode('cp1251', 'ignore'))
b'de.txt'
Если создать аналогичный тестовый пример на C#:
string[] filePaths = Directory.GetFiles(@"D:\Test");
foreach (string filePath in filePaths)
{
Console.WriteLine(filePath);
}
D:\Test\den.txt
Вопрос: как сделать, чтобы на Python'е также выдавался den.txt, а не b'de.txt'?