Уведомления

Группа в Telegram: @pythonsu

#1 Март 18, 2011 09:38:38

Gipahs
От:
Зарегистрирован: 2011-03-18
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировкой при просмотре файлов в каталоге

Здравствуйте, подскажите пожалуйста в чем ошибка. при просмотре файлов в каталоге, их пути отображаются неправильно . Я понимаю что дело в кодировке, но ничего не помогает, вставлял в начале # -*- coding:utf-8 -*-. Кодировка самих файлов ANSI-Кириллица, но переправлять кодировку на utf-8 в блокноте не хотелось бы. Пример кода

import os
dir = r'e:/t_files/'
name = os.listdir(dir)
for i in name:
pyt = os.path.join(dir, i)
print pyt
вот что выводится

e:/t_files/�����_������������_��������_��.lg
e:/t_files/����������_����������_������_�_���.lg
e:/t_files/����_�_�����_������.lg

Еще одна особенность, первый раз при запуске программы все пути файлов отобразились правильно. но при внесении изменений в файл, возникла вот такая ошибка.
Прочел здесь несколько тем связанных с этим вопросов, но до конца не разобрался.



Офлайн

#2 Март 18, 2011 11:16:33

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Проблема с кодировкой при просмотре файлов в каталоге

попробуй:
в начало: в начале # -*- coding:utf-8 -*-
и вывод:
print pyt.decode('utf8').encode('cp866')

Офлайн

#3 Март 18, 2011 12:28:56

Gipahs
От:
Зарегистрирован: 2011-03-18
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировкой при просмотре файлов в каталоге

o7412369815963
попробуй:
в начало: в начале # -*- coding:utf-8 -*-
и вывод:
print pyt.decode('utf8').encode('cp866')
Не помогло пишет ошибку

return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: ‘utf8’ codec can't decode byte 0xc2 in position 12: invalid continuation byte



Офлайн

#4 Март 18, 2011 14:05:38

Vader
От:
Зарегистрирован: 2010-01-30
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировкой при просмотре файлов в каталоге

Мне кажется, что сначала все-таки нужно раскодировать ansi, а потом уже выводить/писать в файл:

#Вывести в консоль нормальный путь
pyt.decode('cp1251').encode('cp866')
#Записать в файл в utf-8
pyt.decode('cp1251').encode('utf8')



Отредактировано (Март 18, 2011 14:14:39)

Офлайн

#5 Март 18, 2011 20:08:10

Gipahs
От:
Зарегистрирован: 2011-03-18
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировкой при просмотре файлов в каталоге

Vader
Мне кажется, что сначала все-таки нужно раскодировать ansi, а потом уже выводить/писать в файл:
#Вывести в консоль нормальный путь
pyt.decode('cp1251').encode('cp866')
#Записать в файл в utf-8
pyt.decode('cp1251').encode('utf8')
Спасибо большое



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version