@amirkhonov

Как изменить глобальную переменную внутри try/except в Python?

Здравствуйте!
Я новичок в мире Python и появился вопрос по работе с исключениями.
Мне нужно получить страницы сайта с помощью urllib2 и обработать его, а потом полученные результаты в кортеж или в список. Однако когда urllib2 прерывает процесс c кодом HTTPError (когда получает ошибку 404, например) нужно продолжить выполнения этой задачи.
lastversion = ()
try:
            jopen = urllib2.urlopen(j)
            versions = jopen.read() # get tags/versions page
            version = pq(versions)          # send content to pyquery pq
            # ... обработка с pyquery
           lastversion += (version,) # после обработки version добавить его в кортеж lastversion
except urllib2.HTTPError, err:   
            lastversion += ('some_text',)  # когда urllib2 получает ошибку в кортеж добавить это значение
print len(lastversion)


Но в итоге все равно получаю 0 элементов кортежа, т.е. ничего не добавилось.

Вопрос: как быть в такой ситуации? Мне необходимо добавить в кортеж инфу, когда даже urllib2 выдает ошибку и получить заполненный кортеж lastversion.

P.S. Знаком с областью видимости в Python.

Спасибо за ответы!
  • Вопрос задан
  • 832 просмотра
Пригласить эксперта
Ответы на вопрос 3
tema_sun
@tema_sun
Вы используете кортеж (tuple), вместо списка (list). Кортеж - это неизменяемая структура.
Ответ написан
@iegor
Не смущает ошибка: AttributeError: 'tuple' object has no attribute 'append'?
Ответ написан
Комментировать
@amirkhonov Автор вопроса
Короче, внутри try/except можно менять значение глобальной переменной? Если да, то как мне решать это в моем случае?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 200 000 ₽
Гринатом Москва
от 150 000 ₽
DIGITAL SECTOR Краснодар
от 150 000 до 250 000 ₽
26 июн. 2024, в 02:23
5000 руб./за проект
26 июн. 2024, в 00:28
5000 руб./за проект
25 июн. 2024, в 23:31
1500 руб./за проект