Вы могли найти ответ здесь - Получение международных символов от веб-страницы?
РЕДАКТИРОВАНИЕ : Это походит BeautifulSoup
, не преобразовывает объекты, записанные в шестнадцатеричной форме. Это может быть зафиксировано:
import copy, re
from BeautifulSoup import BeautifulSoup
hexentityMassage = copy.copy(BeautifulSoup.MARKUP_MASSAGE)
# replace hexadecimal character reference by decimal one
hexentityMassage += [(re.compile('([^;]+);'),
lambda m: '%d;' % int(m.group(1), 16))]
def convert(html):
return BeautifulSoup(html,
convertEntities=BeautifulSoup.HTML_ENTITIES,
markupMassage=hexentityMassage).contents[0].string
html = 'ǎǎ'
print repr(convert(html))
# u'\u01ce\u01ce'
РЕДАКТИРОВАНИЕ :
unescape()
функция, упомянутая , @dF , который использует htmlentitydefs
стандартный модуль и unichr()
, мог бы быть более соответствующим в этом случае.
Если Y - это модуль (а X - это пакет), reload (Y)
подойдет - в противном случае вы поймете, почему хорошие руководства по стилю Python (например, мой работодатель) сказал никогда не импортировать ничего кроме модуля (это одна из многих веских причин - тем не менее, люди продолжают напрямую импортировать функции и классы, как бы я ни объяснял что это не хорошая идея; -).
Во-первых, вам вообще не следует использовать перезагрузку, если вы можете этого избежать. Но давайте предположим, что у вас есть причины (например, отладка внутри IDLE).
Повторная загрузка библиотеки не вернет имена в пространство имен модуля. Для этого просто переназначьте переменные:
f = open('zoo.py', 'w')
f.write("snakes = ['viper','anaconda']\n")
f.close()
from zoo import snakes
print snakes
f = open('zoo.py', 'w')
f.write("snakes = ['black-adder','boa constrictor']\n")
f.close()
import zoo
reload(zoo)
snakes = zoo.snakes # the variable 'snakes' is now reloaded
print snakes
Вы можете сделать это несколькими другими способами. Вы можете автоматизировать процесс, выполнив поиск в локальном пространстве имен и переназначив все, что было от рассматриваемого модуля, но я думаю, что мы достаточно злы.
Согласно Стивенсу Расширенное программирование в среде UNIX , глава 13, это процедура для создания хорошо работающего демона Unix:
setsid
для создания нового сеанса. Это делает три вещи:
/
, чтобы не мешать монтированию и размонтированию stdout
, stderr
, и stdin
. В настоящее время существует файл для отслеживания PID, который активно используется сценариями загрузки дистрибутива Linux.