Форум сайта python.su
0
Всем доброго дня!
Прошу вашей помощи в решении проблемы ниже.
Предыстория: общая задача состоит в том, что нужно копировать файлы с одного фтп на другой фтп, следуя некоторым правилам (нужно копировать файлы определенного формата, раскладывать их по определенным папкам и т.д.). Скрипт написан и работает, но иногда падает, когда в названии файла встречаются русские буквы или символы вида ñ.
Создала тестовый пример:
# -*- 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'
string[] filePaths = Directory.GetFiles(@"D:\Test");
foreach (string filePath in filePaths)
{
Console.WriteLine(filePath);
}
D:\Test\den.txt
Офлайн
20
Странно у меня:
import os list = os.listdir('D:\\Test') for filename in list: print(filename)
Офлайн
0
Спасибо за ответ!
У меня W7 64 Python 3.3.2
Попробовала так:
# -*- coding: cp866 -*- import os f = open('D:\\555\\log.txt', 'wb') list = os.listdir('D:\\Test') for filename in list: filename = filename.encode('utf-8', 'ignore') f.write(filename) f.close()
Офлайн
20
Задача решилась, а вот проблема не ушла, ну да ладно))
Офлайн