Форум сайта python.su
Добрый день.
У меня такой вопрос.
Я в IDLE получаю какой-нибудь html документ в кодировке utf-8 (через Urllib), пишу его в переменную h. Переменная - обычный STR, хотя содержимое - в кодировке utf 8.
Потом я назначаю другую переменную присваиванием: s = ‘фрагмент текста’, ввожу текст на русском.
Проверяю s in h, получаю false.
В IDLE выставлена кодировка UTF-8.
1) Можно ли делать проверку наличия подстроки описанным мною способом?
2) Если нет, то как можно иным способом искать подстроки в кодировке UTF-8 работая с Python в интерактивном режиме.
Спасибо.
Офлайн
#!/usr/bin/env python
#-*-encoding:UTF-8-*-
import urllib
html = urllib.urlopen("http://google.com").read().decode("UTF-8")
need_to_find = u"Вася Пупкин"
if need_to_find in html:
print 1
else:
print 0
Офлайн
Нужно, чтобы в IDLE результаты выполнения команд отображались кириллицей, а не кодами символов. Подскажите, пожалуйста, что я делаю неправильно:
#!/usr/bin/env python
# -*- coding: cp1251 -*-
s = "Текст"
print s[0], s[-1]
Т т
s = "Это пример текста"
lst = s.split(" ")
print lst
['\xd6\xe5', '\xef\xf0\xe8\xea\xeb\xe0\xe4', '\xf3\xea\xf0\xe0\xbf\xed\xf1\xfc\xea\xee\xe3\xee', '\xf2\xe5\xea\xf1\xf2\xf3']
import codecs
print lst.encode('windows-1251')
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
print lst.encode('windows-1251')
AttributeError: 'list' object has no attribute 'encode'
Офлайн
Используйте цикл для перебора списка и оператор print для вывода:
>>> s = "Это пример текста"
>>> lst = s.split(" ")
>>> for i in lst: print i
Это
пример
текста
>>> "Текст"
'\xd2\xe5\xea\xf1\xf2'
>>> print "Текст"
Текст
quill_driverЭта строка в Windows XP не нужна…
#!/usr/bin/env python
Отредактировано (Фев. 25, 2010 02:57:47)
Офлайн
но и не мешает
Офлайн
определенно мешает, видимо благодаря ей код топикастера
s = "Это пример текста"
lst = s.split(" ")
print lst
['Це', 'приклад', 'українського', тексту']
Офлайн
Nikсовершенно неожиданно наткнулся на более “красивый” способ:
Используйте цикл для перебора списка и оператор print для вывода:>>> s = "Это пример текста"
>>> lst = s.split(" ")
>>> for i in lst: print i
Это
пример
текста
s = "Это пример текста"
lst = s.split(" ")
print(", ".join(unicode(x) for x in lst))
Это, пример, текста
Офлайн