Кароче ёба.
Петон - пиздатый. Но у него есть свои особенности.
Хочешь чтобы не было проблем с utf8 - в начале файла объяви:
#!/usr/bin/env python # -*- coding: utf-8 -*-
Чтобы при выполнении скрипта не было пиздежа вроде "SyntaxError: Non-ASCII character блаблабла" - переменные обращай в utf8, например:
vendorcode=info.text.encode('utf-8')
В случае если у нас не программа, выводящая hello world - юзаем блядские отступы табуляцией.
Вот этот исходник не правильный, и интерпретатор свалится при попытке выполнить его:
for event, element in etree.iterparse('list.xml', tag="item"): id=element.get('id').encode('utf-8') for info in element.iter(): if info.tag in ('vendorCode'): vendorcode="123"
А такой - правильный:
for event, element in etree.iterparse('list.xml', tag="item"): id=element.get('id').encode('utf-8') for info in element.iter(): if info.tag in ('vendorCode'): vendorcode="123"
После php, bash и прочих - пиздец непривычно писать правильный код.
А еще - знание английского весьма пригодится, т.к. доки - на иглыше. И примеры решения проблем на StackOwerflow - тоже :)
Если парсишь xml и файл большой - minidom'ом хрен распарсишь, он жрет много памяти, а когда памяти не хватает - скрипт умирает. У меня получилось наотличненько парсить файл при помощи lxml.
Ставить модули для питона - просто. Сначала ставим pip, а потом уже при помощи него уже всё остальное.
Кстати, lxml в debian ставить надо так:
apt-get install libxslt1-dev libxml2-dev pip install lxml
Вроде всё.