Skip to content

Про python по-пацански

Кароче ёба.

Петон - пиздатый. Но у него есть свои особенности.

Хочешь чтобы не было проблем с 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

 

Вроде всё.

Leave a Reply

Your email address will not be published. Required fields are marked *

π