Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Закрыто: Python: как побороть UnicodeEncodeError: 'ascii' codec can't encode characters in ...

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Прочее] >> Закрыто: Python: как побороть UnicodeEncodeError: 'ascii' codec can't encode characters in ...
Имя
Сообщение << Старые топики   Новые топики >>
Закрыто: Python: как побороть UnicodeEncodeError: 'ascii' codec can't encode characters in ... - 2011-09-10 20:15:23.933333   
bob3r

Сообщений: 67
Оценки: 0
Присоединился: 2011-06-03 02:30:17.840000
Помогал Mikro к Python (см. Вопрос про Python,библиотека lxml) и написал скрипт, который собирает все термины с Securitywiki.ru и пытается записать их в файл.
Опытные питоноводы, к качеству кода сильно не придиратесь:
#coding: utf-8 import lxml.HТМL filetermin=open("/media/files/Project/python/termin/termin.txt", "a" ) HТМLtree = lxml.HТМL.parse("http://securitywiki.ru/Slovar%27Terminov?v=xqo") root = HТМLtree.getroot() for a in root.findall(".//a[@title]"): if (a.get("href").find("http://securitywiki.ru/Slovar'Terminov") &gt;= 0): #print a.text + " " + a.get("href") terminsPageUrl = a.get("href").replace("'", "%27") terminsPage = lxml.HТМL.parse(terminsPageUrl) termins = terminsPage.getroot() for termin in termins.findall(".//tr[@class='userrow']"): str = "" for termPart in termin.findall(".//td[@class='usercell']"): if termPart.text != None: str = str + termPart.text.strip() + " " else: str = str + " " filetermin.write(str + "\n") filetermin.close() В файл не записывается ничего, происходит ошибка перекодировки на самой первой попытке записи.
quote:

Traceback (most recent call last):
File "./securitywiki.py", line 20, in &lt;module&gt;
filetermin.write(str + "\n")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 8-24: ordinal not in range(128)


Python 2.6.5. Как побороть ошибку?

updаtе:
разобрался
str = str + "\n" filetermin.write(str.encode("utf-8"))
Post #: 1
Страниц:  [1]
Все форумы >> [Прочее] >> Закрыто: Python: как побороть UnicodeEncodeError: 'ascii' codec can't encode characters in ...







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.