Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 25, 2009 15:44:58

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

xlwt кодировка

у меня этот код вызывает ошибку

>>> print u'Лист'.encode('cp1251')

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
print u'Лист'.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>



Офлайн

#2 Ноя. 25, 2009 16:02:19

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

xlwt кодировка

Вы это в чём запустили? В консоли?

Офлайн

#3 Ноя. 25, 2009 16:05:29

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

xlwt кодировка

да, в консоли



Офлайн

#4 Ноя. 25, 2009 16:05:44

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

xlwt кодировка

перечитал первый пост… попробуйте просто указать кодировку cp1251 в начале файла, а все u'string' заменить на ‘string’ и все должно отображаться нормально (:



Офлайн

#5 Ноя. 25, 2009 16:11:15

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

xlwt кодировка

А вот это уже странно.
Я запускаю cmd -> python.exe -> код
Все работает корректно.

Офлайн

#6 Ноя. 25, 2009 16:23:07

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

xlwt кодировка

Zubchick
попробуйте просто указать кодировку cp1251 в начале файла, а все u'string' заменить на ‘string’ и все должно отображаться нормально (:
Спасибо, но к сожалению не работает

# -*- coding: cp1251 -*-
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)

#работаем с экселем
#-------------------------------------


>>> x = cxlslog('123.xls')
>>> x.addlist('Лист1')
Traceback (most recent call last):
File "D:\Program Files\Wing IDE 101 3.2\src\debug\tserver\_sandbox.py", line 1, in <module>
# Used internally for debug sandbox under external interpreter
File "D:\Program Files\Wing IDE 101 3.2\src\debug\tserver\_sandbox.py", line 12, in addlist
File "d:\Python26\Lib\site-packages\xlwt\Workbook.py", line 317, in add_sheet
sheetname = sheetname.decode(self.encoding)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)



Офлайн

#7 Ноя. 25, 2009 16:30:12

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

xlwt кодировка

>>> x = cxlslog('123.xls')
Ещё раз спрошу.
Вы эти вызовы делаете в консоли cmd или в какой-то другой консоли, какой-нибудь IDE?

Офлайн

#8 Ноя. 25, 2009 16:52:02

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

xlwt кодировка

Ferroman
в консоли cmd или в какой-то другой консоли, какой-нибудь IDE?
В консоли cmd



Офлайн

#9 Ноя. 25, 2009 16:55:02

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

xlwt кодировка

н-да … попробую проделать это на домашней машине … спасибо за советы.



Офлайн

#10 Ноя. 26, 2009 13:38:33

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

xlwt кодировка

Переустановил python. Теперь в консоли

import xlwt

x = xlwt.Workbook()
x.add_sheet(u'Лист1')
x.save('123.xls')
работает корректно, однако, тот же код при вызове в стандартной IDE выдает вместо имени листа excel иероглифы, возможно ли это поправить?
Спасибо за внимание …



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version