Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 23, 2009 11:09:46

Nefilim
От:
Зарегистрирован: 2009-11-23
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

xlwt кодировка

import xlwt as xl
x = xl.Workbook()
x.add_sheet(u'Лист1')
x.save('123.xls')
Название листа отображается кракозяброй … что-то не то с кодировкой. Как лечится?
xl.Workbook('utf-8') можно задать параметр но не помогает …
помогите пожалуйста.
Windows XP/ Python 2.6



Отредактировано (Ноя. 23, 2009 11:10:18)

Офлайн

#2 Ноя. 23, 2009 11:28:11

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

xlwt кодировка

В начале файла

# coding:utf-8
есть?



Офлайн

#3 Ноя. 23, 2009 11:29:03

Nefilim
От:
Зарегистрирован: 2009-11-23
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

xlwt кодировка

есть



Офлайн

#4 Ноя. 23, 2009 11:38:48

Nefilim
От:
Зарегистрирован: 2009-11-23
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

xlwt кодировка

>>> x.add_sheet(u'Лист1'.encode('cp1251'))

Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
x.add_sheet(u'Лист1'.encode('cp1251'))
File "D:\Python26\lib\encodings\cp1251.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-3: character maps to <undefined>
увы …



Офлайн

#5 Ноя. 24, 2009 02:47:32

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

xlwt кодировка

regall
В начале файла
Код:
# coding: utf-8
есть?
совсем недавно на форуме обсуждалось нечто подобное. мало указать кодировку, нужно еще и файл сохранить в этой кодировке :). при соблюдении этих условий библиотека работает корректно.



Офлайн

#6 Ноя. 24, 2009 08:55:26

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

xlwt кодировка

pyuser
файл сохранить в этой кодировке smile
ы, как-то упустил это, так как у меня Эклипс уже кто-знает сколько глобально настроен на utf-8, то с проблемой не сталкивался давно =)



Офлайн

#7 Ноя. 24, 2009 09:22:24

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

xlwt кодировка

О_о'
Мне казалось что эклипс, что емакс-что pyscripter при указании кодировки в первой строчке сохраняет файл именно в той кодировке… Мб оп пишет в стандартном блокноте? +)



Офлайн

#8 Ноя. 24, 2009 10:12:27

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

xlwt кодировка

offtop:

Zubchick
кодировки в первой строчке сохраняет файл именно в той кодировке…
Pydev, насколько мне известно, нет, он сохраняет файлы в кодировке, которая установлена для текущей папки проекта, а в последнем вообще появилась монстрячая фича: автоопределение кодировки (если чесно, то очень хреново работает, лучше б они там поставили return ‘utf-8’ :D)



Офлайн

#9 Ноя. 25, 2009 10:18:22

Nefilim
От:
Зарегистрирован: 2009-11-23
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

xlwt кодировка

Zubchick
Мб оп пишет в стандартном блокноте? +)
пользуюсь IDLE 2.6 …

спасибо всем за советы, попробую использовать какой-нибудь редактор . в принципе у меня есть dr Python



Офлайн

#10 Ноя. 25, 2009 12:25:09

Nefilim
От:
Зарегистрирован: 2009-11-23
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

xlwt кодировка

и все-таки что я делаю неверно?
файл в utf-8

# -*- coding: utf8 -*-
import xlwt as xlw
#работаем с экселем
class cxlslog:
filename = ""
wl = None
def __init__(self,fname):
self.wl = xlw.Workbook()
self.filename = fname

def addlist(self,lname):
self.wl.add_sheet(lname)

def save(self):
self.wl.save(self.filename)

#работаем с экселем
все-равно кракозябры, правда теперь другие, более размашистые



Отредактировано (Ноя. 26, 2009 13:54:58)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version